Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Система безопасности Database Engine 2011.doc
Скачиваний:
11
Добавлен:
26.08.2019
Размер:
1.06 Mб
Скачать

Создание нового имени входа 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, как показано в следующем примере:

  1. Отключаем имя входа

ALTER LOGIN Mary DISABLE; GO

  1. Выполняем запрос к системному представлению каталога

SELECT * FROM sys.sql_logins

WHERE is_disabled=1; GO

  1. Включаем имя входа

ALTER LOGIN Mary ENABLE;

Если необходимо удалить имя входа из данного экземпляра, следует использовать инструкцию DROP LOGIN.

Следующий пример удаляет имя входа.

DROP LOGIN Mary;

При удалении имени входа SQL Server 2005 не удаляет пользователей базы данных, сопоставленных этому имени входа.

Выполнив запрос системной функции IS_SRVROLEMEMBER можно узнать, принадлежит текущий пользователь к одной из серверных ролей.

Пример кода Transact SQL возвращает значение 1, если текущее имя входа принадлежит к серверной роли sysadmin, и значение 0 в противном случае.

SELECT IS_SRVROLEMEMBER ('sysadmin');