Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Laby / ЛР4 / Система безопасности MS SQL Server 2000.doc
Скачиваний:
26
Добавлен:
12.04.2015
Размер:
61.44 Кб
Скачать

Microsoft SQL Server 2000

Роли пользователей

На уровне сервера служба безопасности оперирует понятием «учетная запись» (login). При подключении к SQL Server требуется ввести login и пароль. Login внутри SQL Server-а может совпадать с login-ом операционной системы (называется такая процедура подключения – аутентификация Windows. Так сейчас сделано в а-303).

Каждой учетной записи можно предоставить права на манипуляции со всеми (!) базами сервера. Эти права называются ролями сервера (server role).

Имеется 9 стандартных ролей сервера (fixed server role):

Sysadmin – любые типы администрирования SQL Server-а.

Serveradmin – конфигурирование и выключение сервера.

Setupadmin – управление связанными серверами и процедурами, автоматически запускаемыми при старте SQL Server.

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

Processadmin – управление процессами, запущенными в SQL Server.

Dbcreator – может создавать и изменять базы данных.

Diskadmin – управляет файлами SQL Server.

Bulkadmin – управление массивным копированием (при архивировании и восстановлении баз из резервных копий).

Новые учетные записи можно создавать с помощью Enterprise Manager, а можно с помощью команд SQL. Для создания новой учетной записи вызывается системная хранимая процедура:

sp_addlogin @loginame = ‘новый_login

[,@passwd = ‘пароль]//если нужен пароль

[,@defdb = ‘имя_базы_данных_по_умолчанию]// по умолчанию системная база ‘master’

[,@deflanguage = ‘язык_по_умолчанию]

[,@sid = ‘SID]

[,@encryptopt = ‘опция_шифрования_пароля]

SID(Security ID) – двоичное число, которое является идентификатором безопасности учетной записи.

"Опция_шифрования_пароля" может принимать одно из значений:

  • NULL – пароль данной учетной записи будет шифроваться (по умолчанию);

  • Skip_encryption – пароль не будет шифроваться;

  • Skip_encryption_old – используется старый способ шифрования поролей, принтый в старых версиях SQL Server (используется для совместимости).

Для создания учетных записей SQL Server, совпадающих с login-ами отдельных пользователей Windows NT или группы пользователей используется хранимая процедура:

sp_grantlogin @loginname = ‘Login_в_WinNT

Login_в_WinNT включает полное имя пользователя с указанием домена. Например, в домене VT определена учетная запись student303. Регистрация производится командой:

EXEC sp_grantlogin ‘VT\student303’

Создание учетных записей через Enterprise Manager: выделить значок logins в папке security нужного сервера  в правой части панели откроется список учетных записей.

Внутри базы данных система безопасности оперирует понятием пользователь (user). Пользователям выдаются различные права (изменение, добавление, удаление) на объекты той базы данных, в которой они зарегистрированы.

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

Например, учетная запись, имеющая доступ к базам данных A, B, C, может проходить в базе A под именем пользователя ‘vasya’, в базе B под именем ‘grant’, а в базе C еще под каким-то именем.

Для связывания учетной записи (login) с определенным именем пользователя (user) может использоваться хранимая процедура:

sp_adduser @loginname = ‘login // имя учетной записи

[,@name_in_db = ‘user] // имя пользователя базы данных

[,@grpname = ‘role]// имя роли

Если используется учетная запись Windows NT, то ее отображение в имя пользователя производится с помощью хранимой процедуры:

sp_grantdbaccess @loginame = ‘login’ // Login в Windows NT

[,@name_in_db = ‘user] // имя пользователя базы данных

Если необязательный параметр name_in_db не указывать, создается user с именем, совпадающим с login.

Внутри базы данных права доступа к объектам этой базы распределяются на уровне пользователей. Например, один пользователь имеет право добавлять и удалять строки таблицы A, таблицу B только читать, а в таблице С изменять существующие строки.

Администратор БД имеет полный доступ ко всем объектам базы.

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

При создании базы данных определяются два стандартных пользователя: dbo и guest (public).

guest (public) – имеет минимальные права доступа. Любой новый пользователь автоматически получает уровень прав guest.

dbo – (Database owner – владелец базы данных) – пользователь с максимальными правами на базу.

Если несколько пользователей имеют одинаковые права доступа к объектам БД, этих пользователей удобно объединить в группу и давать права доступа общие для всех членов группы. Такие группы пользователей в SQL Server называются ролями базы данных (database role). Можно назначить права доступа к объектам базы данных для конкретной роли и работать с ней как с обычным пользователем. Например, если сотрудник переходит в другой отдел, достаточно удалить его из одной роли и добавить в другую, а не устанавливать новые права для каждого пользователя.

Роли базы данных бывают фиксированными, или стандартными (fixed database role), и роли пользователя (их ‘вручную’ определяет администратор БД).

Фиксированные роли базы данных:

db_owner – владелец всех объектов базы, имеет максимальные права.

db_accessadmin – может добавлять и удалять пользователей.

db_securityadmin – управлять всеми разрешениями, объектами, ролями и членами ролей.

db_ddladmin – может выполнять любые команды DDL, кроме GRANT, DENY и REVOKE.

db_backupoperator – может выполнять команды DBCC, CHEKPOINT и BACKUP.

db_datareader – может просматривать любые данные в любой таблице БД.

Соседние файлы в папке ЛР4