- •Система безопасности Database Engine Оглавление
- •Принципы концепции безопасности базы данных.
- •Аутентификация
- •Использование sql Server Management Studio для выбора одного из режимов аутентификации.
- •Создание нового имени входа sql Server.
- •Создание нового имени входа sql Server в Transact-sql.
- •Назначение учетной записи фиксированной серверной роли. Интерфейс sql Server Management Studio.
- •Управление серверными ролями с использованием Transact sql.
- •Управление доступом к базам данных.
- •Предоставление разрешений на базу данных в sql Server Management Studio.
- •Предоставление доступа к базам данных с использованием Transact-sql
- •Управление пользователями базы данных
- •Роли базы данных Создание роли с использованием Transact-sql.
- •Создание роли и добавление члена роли в Transact sql
- •Предоставление индивидуальных (гранулярных) разрешений. Управление доступом к таблицам и столбцам.
- •Предоставление индивидуальных (гранулярных) разрешений в sql Server Management Studio.
- •Управление индивидуальными разрешениями в Transact sql.
- •Управление доступом к схемам
- •Задания для самостоятельного выполнения:
Создание нового имени входа sql Server.
Доступ к экземпляру SQL Server можно предоставить, создав имя входа либо путем непосредственного ввода команд SQL, либо через интерфейс SQL Server Management Studio.
Интерфейс SQL Server Management Studio.
Разверните узлы Security и Server Role.
Создание нового имени входа sql Server в Transact-sql.
Синтаксис:
CREATE LOGIN login_name { WITH <option_list> | FROM <sources> }
<sources> ::=
WINDOWS [ WITH <windows_options> [ ,... ] ]
<option_list> ::=
PASSWORD = 'password'
Пример: создается имя входа SQL Server "Mary"
CREATE LOGIN Mary
WITH PASSWORD = '34TY$$543',
В процессе установки SQL Server 2005 создается одно имя входа SQL Server - sa. Имя входа sa создается в любом случае, даже если в процессе установки выбран режим проверки подлинности Windows.
При помощи следующего кода можно получить информацию об именах входа SQL Server из представления каталога sys.sql_logins:
SELECT * FROM sys.sql_logins;
Назначение учетной записи фиксированной серверной роли. Интерфейс sql Server Management Studio.
Правой кнопкой по роли, в которую нужно добавить новую учетную запись.
Верхняя сетка содержит один или несколько элементов, для которых могут быть установлены разрешения. Если диалоговое окно открыто для объекта или имени входа базы данных, в нем имеются кнопки Добавить и Удалить.
Страница Разрешения используется для просмотра или установки разрешений для защищаемых объектов баз данных.
Выберите элемент в верхней сетке, затем установите нужные разрешения в сетке Явно указанные разрешения.
На этой странице отображаются только явно предоставленные или запрещенные разрешения. Дополнительные разрешения для этих и других защищаемых объектов могут быть неявно предоставлены посредством членства в группе или в роли. Разрешения, полученные благодаря членству в группе или роли, в сетках не указываются. Совокупность всех явных и неявных разрешений представляет собой действующие разрешения.
В сетке Явно указанные разрешения приводятся возможные разрешения для защищаемого объекта, выбранного в верхней сетке. Для настройки разрешений установите или снимите флажки Разрешить, Право передачи и Запретить. Эти параметры доступны не для всех явно указанных разрешений.
Разрешение - Имя разрешения. Например: connect SQL
Право предоставил. Например: sa
Разрешить - Установите флажок, чтобы предоставить имени входа данное разрешение. Снимите флажок, чтобы отменить это разрешение.
Право передачи - Отражает состояние параметра WITH GRANT для разрешения, указанного в списке.
Запретить - Установите флажок, чтобы запретить использование данного разрешения для имени входа. Снимите флажок, чтобы отменить это разрешение.
Управление серверными ролями с использованием Transact sql.
Добавление имени входа к серверной роли. Добавить имя входа к существующей серверной роли можно при помощи системной хранимой процедуры sp_addsrvrolemember.
Пример добавляет Mary к серверной роли sysadmin:
EXECUTE sp_addsrvrolemember "Mary", "sysadmin";
Удаление имени входа из серверной роли. Чтобы удалить имя входа из серверной роли, можно использовать хранимую процедуру sp_dropsrvrolemember.
Пример удаляет пользователя Mary из серверной роли sysadmin:
EXECUTE sp_dropsrvrolemember "Mary", "sysadmin";
Запрещение доступа пользователям.
В некоторых ситуациях, например, когда пользователь увольняется из организации, необходимо запретить доступ определенному имени входа. Если этот запрет временный, можно не удалять имя входа из экземпляра, а просто отключить его.
При отключении доступа свойства имени входа и его сопоставление пользователям базы данных сохраняются.
Повторно включив это имя входа, можно работать с прежними свойствами. Чтобы отключить и включить имя входа, используется инструкция ALTER:
Отключаем имя входа
ALTER LOGIN Mary DISABLE;
Включаем имя входа
ALTER LOGIN Mary ENABLE;
Можно проверить, отключены ли имена входа, выполнив запрос к представлению каталога sql_logins, как показано в следующем примере:
Отключаем имя входа
ALTER LOGIN Mary DISABLE; GO
Выполняем запрос к системному представлению каталога
SELECT * FROM sys.sql_logins
WHERE is_disabled=1; GO
Включаем имя входа
ALTER LOGIN Mary ENABLE;
Если необходимо удалить имя входа из данного экземпляра, следует использовать инструкцию DROP LOGIN.
Следующий пример удаляет имя входа.
DROP LOGIN Mary;
При удалении имени входа SQL Server 2005 не удаляет пользователей базы данных, сопоставленных этому имени входа.
Выполнив запрос системной функции IS_SRVROLEMEMBER можно узнать, принадлежит текущий пользователь к одной из серверных ролей.
Пример кода Transact SQL возвращает значение 1, если текущее имя входа принадлежит к серверной роли sysadmin, и значение 0 в противном случае.
SELECT IS_SRVROLEMEMBER ('sysadmin');