Nano Hash - криптовалюты, майнинг, программирование

SQL Server: можете ли вы ограничить доступ только к одной таблице

Я думаю, что ответ отрицательный, но я хочу предоставить кому-то доступ к базе данных SQL Server, но я действительно хочу, чтобы у них был доступ только к одной таблице.

Достаточно легко ограничить кого-либо доступом только к одной базе данных, но я понятия не имею, могу ли я ограничиться одной таблицей.

Мои мысли состояли в том, чтобы создать другую базу данных с синонимом другой таблицы, а затем ограничить доступ к этой базе данных, но я подумал, может ли кто-нибудь придумать лучший способ.

Я также не уверен, что это сработает, так как я думаю, что будет конфликт разрешений.


  • Вы можете предоставить людям доступ к одному столбцу, если хотите, создать их логин и просто предоставить разрешение на выбор для вашей таблицы. 20.03.2012

Ответы:


1

Да.

exec sp_msforeachtable "DENY SELECT ON ? TO [username];"
GO

GRANT SELECT ON [schemaName].[tableName] to [username]
Go 

Хотя это работает, вам, вероятно, лучше управлять разрешениями с помощью ролей и группы объявлений.

20.03.2012

2

Проблема с перебором всех таблиц и отказом в доступе будет, если вы добавите новую таблицу.

Важно не давать пользователю 'db_datareader' доступ ко всей базе данных. Используя пользовательский интерфейс, вы можете использовать вкладку «Сопоставление пользователей» под логином, вы можете создать пользователя только с «публичным» доступом. Затем вы можете перейти в базу данных и предоставить этому пользователю SELECT доступ к конкретной таблице (нажав кнопку со странным названием «Поиск» на вкладке «Защищенные»).

Этот подход, конечно, будет работать и со сценарием.

16.04.2013
  • Это более полезно, чем принятый ответ. Я не мог понять, почему у этого ответа меньше голосов. 12.05.2020

  • 3

    Безусловно. ПРЕДВЕДИТЕ нужные разрешения.

    Когда вы предоставляете пользователю доступ к базе данных, посмотрите на роли, которые им назначены, и на то, какими правами обладают эти роли.

    Проблема в том, что люди обычно дают слишком широкие разрешения в начале.

    20.03.2012

    4

    Что вы можете. После создания пользователя и предоставления ему доступа к базе данных предоставьте доступ только на выбор (или любой другой уровень, который им нужен) к этой таблице.

    20.03.2012

    5

    Лучшим подходом было бы создать отдельный schema, создать proc в этом schema. Затем разрешите пользователю EXEC это proc. Вот и все. Вы можете создать view в этом schema, и это может быть больше того, что вам нужно.

    13.10.2014

    6

    Лучший способ - создать защищаемый файл для этой конкретной таблицы. ИТ спросит вас, что вы собираетесь защищать; таблица, представление, база данных. Затем вы выбираете конкретную таблицу для защиты и исключаете этого пользователя из этой таблицы.

    16.07.2017

    7
  • Как это защищает остальные таблицы? 25.09.2012
  • Это не так, поэтому ответ не был помечен как принятый, тогда как принятый помечен. Не уверен, что вы просите меня об этом, чтобы указать, что я был неправ по какой-то странной причине через несколько месяцев после этого ответа, который я давно забыл, в любом случае, надеюсь, что мой комментарий поможет. 25.09.2012
  • Извините, этот вопрос был доведен до моего сведения в чате. Когда я прокомментировал, я на самом деле не осознавал, насколько стар этот вопрос. Тем не менее, я думаю, что правильно ставить под сомнение аспекты ответов в отношении исходного вопроса, независимо от его статуса принятия или количества голосов. На множество вопросов нет принятого ответа, и этот вопрос все еще здесь, потому что ответы предназначены для помощи ОП и будущим читателям. Многие из которых могут предположить, что любой ответ на странице является ответом. 25.09.2012
  • Это может не совсем то, что искал спрашивающий, но это именно то, что я искал :) 19.02.2015
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..