Управление доступом к схемам

Схемы – это контейнеры объектов, которые позволяют группировать объекты базы данных. Они отделяют объекты от пользователей. Схемы можно использовать для предоставления или отмены разрешений в отношении группы для соединений с SQL Server. В SQL Serverобъект называется именем, состоящим из четырех компонентов следующей структуры:

<Server>. <Database>. <Schema>.<Object

Создайте в базе данных Postavki схемусименем PostDet.

Для этого в окне SQL Server Management Studio в меню выберите Создать запрос и в окне редактора запросов введите следующий текст:

--Изменяем контекст соединения на базу данныхPostavki.

USE Postavki;

GO

--Создаем схему PostDet с владельцем dbo.

CREATE SCHEMA PostDet

AUTHORIZATION dbo;

--dbo означает, что любой пользователь с правами sysadmin имеет доступ к схеме.

В схеме PostDet будут размещены созданные ниже таблицы, а также другие объекты базы данных.

Переключитесь с учетной записи администратора на учетную запись Fred и войдите вSQL Server.

Создайте в базе данных Postavki таблицы: tblS, tblP и tblSP, используя оператор определения данных CREATE TABLE. В SQL Server Management Studio в меню выберите Создать запрос и в окне редактора запросов введите следующий текст:

--Изменяем контекст соединения на базу данныхPostavki.

USE Postavki;

GO

--Создаем таблицы tblS, tblP и tblSP в схеме PostDet

CREATE TABLE PostDet. tblS

(S CHAR (10) NOT NULL,

SNAME CHAR (10) NOT NULL,

STATUS INT,

CITY CHAR (10) NOT NULL,

PRIMARY KEY (S));

GO

 

CREATE TABLE.tblP

(P CHAR (10) NOT NULL,

PNAME CHAR (10) NOT NULL,

COLOR CHAR (10) NOT NULL,

WGT INT,

CHECK ( WGT > 0 AND WGT < 100),

CITY CHAR (10) NOT NULL,

PRIMARY KEY (P));

GO

CREATE TABLE PostDet. tblSP

(S CHAR (10) NOT NULL,

P CHAR (10) NOT NULL,

QTY INT,

PRIMARY KEY ( S, P ),

/*Определение внешнего ключа */

FOREIGN KEY (S) REFERENCES PostDet.tblS

ON DELETE CASCADE /*Каскадное удаление */

ON UPDATE CASCADE,

FOREIGN KEY (P) REFERENCES PostDet.tblP

ON DELETE CASCADE

ON UPDATE CASCADE,

CHECK (QTY > 0 AND QTY < 2000));

Щелкните на кнопке Выполнить.

При успешном выполнении оператора CREATE TABLE появляется сообщение The command (s) completed successfully. Если после выполнения кода вы получили сообщение отличное от приведенного выше, проверьте синтаксис оператора CREATE TABLE и попытайтесь выполнить его снова.

Сохраните запрос, дайте ему имя. Закройте окно запроса.

В окне SQL Server Management Studio в базе данных Postavki нажмите объект Tables. Убедитесь, что созданные таблицы появились в составе таблиц базы данных. Если таблицы не появились в базе данных, воспользуйтесь командой контекстного меню Refresh.

Заполните таблицы данными.

Для удаления таблицы используется оператор DROP, имеющий простой формат: DROP TABLE table_name.

При выполнении данного оператора удаляются все связанные с таблицей объекты.

Оператор ALTER SCHEMA

Данный оператор перенаправляет объект между различными схемами в одной и той же базе данных. Синтаксис оператора ALTER SCHEMA имеет следующий вид:

ALTER SCHEMA schema_name TRANSFER object_name

Оператор DROP SCHEMA

Оператор DROP SCHEMA удаляет схему из базы данных. Вы можете успешно выполнить оператор DROP SCHEMA для схемы только лишь в том случае, если эта схема не содержит никаких объектов. Если же схема содержит какие-либо объекты, то оператор DROP SCHEMA будет отменен системой.

DROP SCHEMAschema_name

 

Заполните созданные таблицы данными из Приложения.

Переключитесь с учетной записи Fred на учетную запись администратора и войдите вSQL Server.

Удалите пользователя Fred из роли db_owner базы данных Postavki.Для этого в окне редактора запросов введите следующий текст:

USE Postavki

GO

EXECUTE sp_droprolemember 'db_owner', 'fs-64C67299CCAR\Fred';

Удаление пользователя Fredиз роли db_owner не позволит ему создавать новые объекты в базе данных Postavki(таблицы,функции, хранимые процедуры), совершать любые операции с таблицами этой схемы.

 

Переключитесь с учетной записи администратора на учетную запись Fred и войдите вSQL Server. Таблицы в обозревателе объектов SQL Serverисчезнут. Если попытаетесь выполнить запрос к таблице PostDet.tblS, получите сообщение об ошибке.

 

Управление доступом к таблицам и столбцам.

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

GRANT (Предоставить). Предоставляет пользователю или роли доступ к данному действию с указанной таблицей.

WITH GRANT (Право передачи). Также предоставляет пользователю или роли доступ к данному действию с указанной таблицей. Кроме того, с таким параметром можно передавать разрешение другим пользователям или ролям.

DENY (Запретить). Явно запрещает любому пользователю или роли определенные разрешения и предотвращает наследование этих разрешений от других ролей.

REVOKE (Отменить) Отмена ранее предоставленного разрешения или запрета на объект.