Grant Revoke Privileges SQL Server

В этом учебном пособии вы узнаете, как предоставлять и отменять привилегии в SQL Server (Transact-SQL) с синтаксисом и примерами.

Описание

Вы можете использовать привилегии GRANT и REVOKE для различных объектов базы данных в SQL Server. Мы рассмотрим, как предоставить и отменить привилегии для таблиц в SQL Server.

Grant Privileges on Table

Вы можете предоставить пользователям различные привилегии для таблиц. Эти разрешения могут быть любой комбинацией SELECT, INSERT, UPDATE, DELETE, REFERENCES, ALTER или ALL.

Синтаксис

Синтаксис предоставления привилегий для таблиц в SQL Server:

GRANT privileges ON object TO user;

Параметры или аргументы

privileges - назначенные привилегии. Это может быть любое из следующих значений:

SELECT Возможность выполнения операторов SELECT на таблице.
INSERT Возможность выполнения операторов INSERT на таблице.
UPDATE Возможность выполнения операторов UPDATE на таблице.
DELETE Возможность выполнения операторов DELETE на таблице.
REFERENCES Возможность создания ограничения, которое ссылается на таблицу.
ALTER Возможность выполнять оператора ALTER TABLE для изменения определения таблицы.
ALL ВСЕ не предоставляет все разрешения для таблицы. Скорее, он предоставляет разрешения ANSI-92, которые являются SELECT, INSERT, UPDATE, DELETE и REFERENCES.

object - имя объекта базы данных, для которого вы предоставляете разрешения. В случае предоставления привилегий для таблицы это будет имя таблицы.
user - имя пользователя, которому будут предоставлены эти привилегии.

Пример

Рассмотрим некоторые примеры предоставления привилегий для таблиц в SQL Server. Например, если вы хотите предоставить привилегии SELECT, INSERT, UPDATE и DELETE для таблицы, называемой employees, для имени пользователя samvel, вы должны запустить следующий оператор GRANT:

Вы также можете использовать ключевое слово ALL, чтобы указать, что вы хотите предоставить разрешения ANSI-92 (т.е.: SELECT, INSERT, UPDATE, DELETE и REFERENCES) для пользователя с именем samvel.
Например:

Если вы хотите предоставить только доступ SELECT для таблицы employees всем пользователям, вы можете предоставить привилегии публичной роли. Например:

Revoke Privileges on Table

Как только вы предоставили привилегии, вам может потребоваться отменить некоторые или все эти привилегии. Для этого вы можете запустить команду отмены. Вы можете отменить любую комбинацию SELECT, INSERT, UPDATE, DELETE, REFERENCES, ALTER или ALL.

Синтаксис

Синтаксис отмены прав на таблицу в SQL Server:

REVOKE privileges ON object FROM user;

privileges - назначенные привилегии. Это может быть любое из следующих значений:

SELECT Возможность выполнения операторов SELECT на таблице.
INSERT Возможность выполнения операторов INSERT на таблице.
UPDATE Возможность выполнения операторов UPDATE на таблице.
DELETE Возможность выполнения операторов DELETE на таблице.
REFERENCES Возможность создания ограничения, которое ссылается на таблицу.
ALTER Возможность выполнять оператора ALTER TABLE для изменения определения таблицы.
ALL ВСЕ не предоставляет все разрешения для таблицы. Скорее, он предоставляет разрешения ANSI-92, которые являются SELECT, INSERT, UPDATE, DELETE и REFERENCES.

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

Пример

Рассмотрим некоторые примеры отмены прав для таблицы в SQL Server. Например, если вы хотите отменить привилегии DELETE для таблицы, называемой employees для пользователя с именем samvel, вы должны запустить следующий оператор REVOKE:

Если вы хотите отменить все разрешения ANSI-92 (т.е.: SELECT, INSERT, UPDATE, DELETE и REFERENCES) в таблице для пользователя с именем samvel, вы можете использовать ключевое слово ALL следующим образом:

Если вы предоставили привилегии SELECT публичной роли (то есть: всем пользователям) в таблице employees и хотели отменить эти привилегии, вы можете запустить следующий оператор REVOKE: