Это кажется глупым вопросом, но, несмотря на некоторые исследования, я не смог найти какую-либо информацию только об этом (возможно, из-за неправильной терминологии).
Можно ли зарегистрировать несколько входов на сервер (проверка подлинности на сервере sql) одному пользователю базы данных (которому назначены полномочия в качестве члена роли базы данных)?
У меня есть десятки логинов sql (аутентификация на сервере sql), которым нужно прочитать один параметр из центральной базы данных, и я предпочел бы сопоставить все эти логины одному пользователю БД в целевой базе данных, чем создавать собственного пользователя БД для каждого логина.
Если да, какой будет правильный синтаксис T-SQL?
sql-server
t-sql
permissions
leepfrog
источник
источник
ROLE
а затем добавить пользователей в роль. Таким образом, вы просто предоставляете разрешения для роли. Это поможет вам лучше управлять безопасностью. Кроме того, что такое версия сервера sql - 2008R2, 2012?Ответы:
Сначала убедитесь в терминологии. Логин - это субъект безопасности уровня экземпляра (
sys.server_principals
), а пользователь - участник безопасности уровня базы данных (sys.database_principals
). Они объединены SID (идентификатор безопасности). Если вы посмотрите на системные представления выше, вы увидите, как они объединяются в формате 1: 1 по SID. Это 1 Вход в 1 пользователя в базе данных. Логин может иметь несколько пользователей, но они должны находиться в разных базах данных.Поэтому вам нужно будет создать пользователя в своей базе данных для каждого входа в систему, к которому вы хотите иметь доступ. Это достаточно простая команда.
Оттуда вы можете поместить всех своих пользователей в одну (или несколько) роль. Роль - это контейнер, который имеет разрешения и разделяет эти разрешения с каждым пользователем (для ролей в базе данных) или логином (например, для ролей). Существует встроенная роль базы данных,
db_datareader
которая предоставляет доступ для чтения каждой таблице и представлению в базе данных. Вы можете добавить всех своих пользователей к этой роли. Однако лучшей идеей будет создание новой роли и добавление ее кdb_datareader
роли. Затем добавьте всех своих пользователей в новую роль. Преимущество здесь в том, что если вы хотите добавить дополнительные разрешения для группы, вы можете просто изменить разрешения для роли.Создать роль путем:
Добавить пользователя в роль (или одну роль в другую)
или если вы в 2012 или выше
источник
That's 1 Login to 1 User in a database
.