Администрирование системы безопасности

Для создания пользователя в среде MS SQL Server следует предпринять следующие шаги:

  1. Создать в базе данных учетную запись пользователя, указав для него пароль и принятое по умолчанию имя базы данных (процедура sp_addlogin).
  2. Добавить этого пользователя во все необходимые базы данных (процедура sp_adduser).
  3. Предоставить ему в каждой базе данных соответствующие привилегии (команда GRANT).

Создание новой учетной записи может быть произведено с помощью системной хранимой процедуры:

sp_addlogin[@login=] 'учетная_запись'[, [@password=] 'пароль'][, [@defdb=] 'база_данных_по_умолчанию']

После завершения аутентификации и получения идентификатора учетной записи (login ID) пользователь считается зарегистрированным, и ему предоставляется доступ к серверу. Для каждой базы данных, к объектам которой он намерен получить доступ, учетная запись пользователя (login) ассоциируется с пользователем (user) конкретной базы данных, что осуществляется посредством процедуры:

sp_adduser[@loginame=] 'учетная_запись'[, [@name_in_db=] 'имя_пользователя'][, [@grpname=] 'имя_роли']

Отобразить учетную запись Windows NT в имя пользователя позволяет хранимая процедура:

sp_grantdbaccess[@login=] ‘учетная_запись’[, [@name_in_db=]‘имя_пользователя’]

Пользователь, который создает объект в базе данных (таблицу, хранимую процедуру, просмотр), становится его владельцем. Владелец объекта (database object owner dbo) имеет все права доступа к созданному им объекту. Чтобы пользователь мог создать объект, владелец базы данных (dbo) должен предоставить ему соответствующие права. Полное имя создаваемого объекта включает в себя имя создавшего его пользователя.

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

SQL Server позволяет передавать права владения от одного пользователя другому с помощью процедуры:

sp_changeobjectowner[@objname=] ‘имя_объекта’[@newowner=] ‘имя_владельца’

Роль позволяет объединить в одну группу пользователей, выполняющих одинаковые функции.

В SQL Server реализовано два вида стандартных ролей: на уровне сервера и на уровне баз данных. При установке SQL Server создаются фиксированные роли сервера (например, sysadmin с правом выполнения любых функций SQL-сервера) и фиксированные роли базы данных (например, db_owner с правом полного доступа к базе данных или db_accessadmin с правом добавления и удаления пользователей). Среди фиксированных ролей базы данных существует роль public, которая имеет специальное назначение, поскольку ее членами являются все пользователи, имеющие доступ к базе данных.

Можно включить любую учетную запись SQL Server (login) или учетную запись Windows NT в любую роль сервера.

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

В роль базы данных можно включить пользователей SQL Server, роли SQL Server, пользователей Windows NT.

Различные действия по отношению к роли осуществляются при помощи специальных процедур:

  • создание новой роли:
· sp_addrole· [@rolename=] 'имя_роли' · [, [@ownername=] 'имя_владельца']
  • добавление пользователя к роли:
· sp_addrolemember· [@rolename=] 'имя_роли', · [@membername=] 'имя_пользователя'
  • удаление пользователя из роли:
· sp_droprolemember· [@rolename=] 'имя_роли', · [@membername=] 'имя_пользователя'
  • удаление роли:
· sp_droprole· [@rolename=] 'имя_роли'

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: