Реферат Курсовая Конспект
Команды T-SQL для управления разрешениями пользователя на доступ к объектам базы данных - раздел Менеджмент, Современные технологии управления 1)Предоставить Доступ Grant ...
|
1)Предоставить доступ
GRANT
{ALL [PRIVILEGES] | permission [,...n]}
{
[(column[,...n])] ON {table | view}
| ON {table | view}[(column[,...n])]
| ON {stored_procedure | extended_procedure}
| ON { user_defined_function }
}
TO security_account [,...n]
[WITH GRANT OPTION]
[AS {group | role}]
Параметры команды GRANT:
ALL — пользователю предоставляются все доступные разрешения. Этот параметр могут использовать только участники ролей sysadmin и db_owner, а также владельцы конкретных объектов базы данных;
permission — список доступных разрешений, которые предоставляются пользователю (SELECT, INSERT, UPDATE, DELETE, REFERENCES, EXECUTE). Можно одновременно предоставлять несколько разрешений, в этом случае их нужно разделять запятыми;
security_account — имя того объекта системы безопасности, которому предоставляются права.
Объектами могут быть:
• пользователи SQL Server,
• роли SQL Server,
• пользователи и группы пользователей Windows, которым предоставлен доступ к серверу баз данных.
Перед назначением security_account должен уже существовать в текущей базе данных.
WITH GRANT OPTION — позволяет пользователю, которому вы предоставляете права, в свою очередь назначать эти же права на этот же объект другим пользователям;
AS {group | role} — позволяет указать участие пользователя в роли, которая имеет возможность предоставлять права другим пользователям.
Пример_1: Необходимо предоставить права на использование команд INSERT и SELECT в таблице Materials для членов группы Engineer.
При этом нужно, чтобы в дальнейшем пользователи этой группы могли сами предоставлять такие права.
GRANT SELECT, INSERT
ON Materials
TO Engineer
WITH GRANT OPTION
Пример_2:
USE pubs
GO
GRANT SELECT
ON authors
TO public
GO
GRANT INSERT, UPDATE, DELETE
ON authors
TO Mary, John, Tom
GO
Пример_3:
Пользователь Jean владеет таблицей Plan_Data.
Jean даёт разрешение на выполнение команды SELECT пользователям роли Accounting, так что они тоже в свою очередь могут предоставлять это право другим пользователям.
Пользователь Jill, член группы Accounting, хочет предоставить право SELECT на таблицу Plan_Data пользователю Jack, который не входит в группу Accounting.
Пример_3:
/* User Jean */
GRANT SELECT
ON Plan_Data
TO Accounting
WITH GRANT OPTION
/* User Jill */
GRANT SELECT
ON Plan_Data
TO Jack
AS Accounting
2) Запретить права доступа
DENY
{ ALL [ PRIVILEGES ] | permission [ ,...n ] }
{
[ (column [ ,...n ] )] ON { table | view }
| ON { table | view } [ (column [ ,...n ] )]
| ON { stored_procedure | extended_procedure }
| ON { user_defined_function }
}
TO security_account [ ,...n ]
[ CASCADE ]
Параметры аналогичны команде GRANT.
CASCADE – запрещаются права, как пользователя secirity_account , так и всех пользователей, которым он предоставил права.
Если не указано CASCADE , а пользователь получил права с параметром WITH GRANT OPTION, то будет возвращена ошибка.
DENY имеет преимущество перед GRANT.
Например, пользователю запрещено некоторое действие.
Затем он был добавлен в роль, членам которой разрешено это действие.
В результате всё-таки пользователю данное действие будет запрещено.
Команда DENY аннулирует все разрешения на доступ, полученные пользователем на любом уровне иерархии.
Пример_1:
USE pubs
GO
GRANT SELECT
ON authors
TO public
GO
DENY SELECT, INSERT, UPDATE, DELETE
ON authors
TO Mary, John, Tom
Пример_1:
Сначала право SELECT на таблицу authors предоставляется членам роли public, т.е. всем пользователям текущей базы данных.
Потом, несколько прав запрещается пользователям Mary, John и Tom. Эти пользователи теперь не имеют прав доступа на таблицу authors, хотя продолжают оставаться членами роли public.
3) Удаляет сделанные ранее разрешения или запрещения
REVOKE [ GRANT OPTION FOR ]
{ ALL [ PRIVILEGES ] | permission [ ,...n ] }
{
[ (column [ ,...n ] )] ON { table | view }
| ON { table | view } [ (column [ ,...n ] )]
| ON { stored_procedure | extended_procedure }
| ON { user_defined_function }
}
{ TO | FROM }
security_account [ ,...n ]
[ CASCADE ]
[ AS { group | role } ]
Параметры аналогичны команде GRANT.
GRANT OPTION FOR – удаляет разрешения пользователя с параметром WITH GRANT OPTION. Пользователь сохранит все свои права, но не сможет предоставлять их другим пользователям. Используется вместе с параметром CASCADE.
Команда REVOKE действует только на том уровне, на котором применена.
Например, пользователю Andrew напрямую предоставлено право SELECT на таблицу authors.
И у него есть такое же право, как у члена роли employees.
Если теперь удалить такое право у роли employees, у пользователя Andrew всё же останется это право.
Пример_1:
Пользователь Mary - член роли Budget. Этой роли предоставлено право SELECT на таблицу Budget_Data.
Но Mary был напрямую запрещён доступ к таблице командой DENY.
Если выполнить команду
REVOKE SELECT ON Budget_Data TO Mary
, то Mary получит право SELECT на таблицу.
1) Разрешить выполнение команд
GRANT { ALL | statement [ ,...n ] }
TO security_account [ ,...n ]
statement – команда, право выполнения которой предоставляется.
Список возможных команд:
• CREATE DATABASE
• CREATE DEFAULT
• CREATE FUNCTION
• CREATE PROCEDURE
• CREATE RULE
• CREATE TABLE
• CREATE VIEW
• BACKUP DATABASE
• BACKUP LOG
Пример_1:
GRANT CREATE DATABASE, CREATE TABLE
TO Mary, John, [Corporate\BobJ]
Предоставить права на выполнение команд создания баз данных и таблиц пользователям Mary, John и группе Windows с именем [Corporate\BobJ] .
2) Запретить выполнение команд
DENY { ALL | statement [ ,...n ] }
TO security_account [ ,...n ]
Пример_1:
DENY CREATE DATABASE, CREATE TABLE
TO Mary, John, [Corporate\BobJ]
3) Отменить ранее разрешенные или запрещенные права на выполнение команд
REVOKE { ALL | statement [ ,...n ] }
FROM security_account [ ,...n ]
Пример_1: Пусть пользователям Joe и Corporate\BobJ ранее было напрямую предоставлено право выполнять CREATE TABLE.
Данная команда отменяет это право:
REVOKE CREATE TABLE
FROM Joe, [Corporate\BobJ]
Однако, если бы Joe и Corporate\BobJ входили в роль, члены которой имеют право выполнять CREATE TABLE, то это право за ними осталось бы.
– Конец работы –
Эта тема принадлежит разделу:
Кафедра Прикладные информационные технологии... Иванов А В...
Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Команды T-SQL для управления разрешениями пользователя на доступ к объектам базы данных
Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:
Твитнуть |
Новости и инфо для студентов