Revoke sql: Grant/Revoke привилегии MySQL — Oracle PL/SQL •MySQL •MariaDB •SQL Server •SQLite

Grant/Revoke привилегии MySQL — Oracle PL/SQL •MySQL •MariaDB •SQL Server •SQLite

В этом учебном пособии вы узнаете, как предоставлять и отменять привилегии в MySQL с синтаксисом и примерами.

Описание

Вы можете использовать привилегии GRANT и REVOKE для различных объектов базы данных в MySQL. Затем вы можете просмотреть привилегии, назначенные пользователю, используя команду SHOW GRANTS. Мы рассмотрим, как предоставлять и отменять привилегии для таблиц, функций и процедур в MySQL.

Grant привилегии на таблицу

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

Синтаксис

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

GRANT privileges ON object TO user;

privileges — это может быть любое из следующих значений:

ПривилегииОписание
SELECTВозможность выполнения операторов SELECT для таблицы.
INSERTВозможность выполнения операторов INSERT для таблицы.
UPDATEВозможность выполнения операторов UPDATE для таблицы.
DELETEВозможность выполнения операторов DELETE для таблицы.
INDEXВозможность создания индекса в существующей таблице.
CREATEВозможность выполнять оператор CREATE TABLE.
ALTERВозможность выполнять оператор ALTER TABLE для изменения определения таблицы.
DROPВозможность выполнения операторов DROP TABLE.
GRANT OPTIONПозволяет предоставлять права, которыми вы обладаете для других пользователей.
ALLПредоставляет все разрешения, кроме GRANT OPTION.

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

Пример

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

GRANT SELECT, INSERT, UPDATE, DELETE ON contacts TO ‘adam’@’localhost’;

GRANT SELECT, INSERT, UPDATE, DELETE ON contacts TO ‘adam’@’localhost’;

Вы также можете использовать ключевое слово ALL, чтобы указать, что вы хотите предоставить все разрешения, кроме GRANT OPTION, пользователю с именем ‘adam’.
Например:

GRANT ALL ON contacts TO ‘adam’@’localhost’;

GRANT ALL ON contacts TO ‘adam’@’localhost’;

Если вы хотите предоставить только доступ SELECT в таблице contacts всем пользователям, вы можете предоставить привилегии *.

Например:

GRANT SELECT ON contacts TO ‘*’@’localhost’;

GRANT SELECT ON contacts TO ‘*’@’localhost’;

Отменить привилегии на таблицу

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

Синтаксис

Синтаксис отмены привилегий на таблицу в MySQL:

REVOKE privileges ON object FROM user;

privileges — это может быть любое из следующих значений:

ПривилегииОписание
SELECTВозможность выполнения операторов SELECT для таблицы.
INSERTВозможность выполнения операторов INSERT для таблицы.
UPDATEВозможность выполнения операторов UPDATE для таблицы.
DELETEВозможность выполнения операторов DELETE для таблицы.
INDEXВозможность создания индекса в существующей таблице.
CREATEВозможность выполнять оператор CREATE TABLE.
ALTERВозможность выполнять оператор ALTER TABLE для изменения определения таблицы.
DROPВозможность выполнения операторов DROP TABLE.
GRANT OPTIONПозволяет предоставлять права, которыми вы обладаете для других пользователей.
ALLПредоставляет все разрешения, кроме GRANT OPTION.

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

Пример

Рассмотрим некоторые примеры отмены привилегий на таблицу в MySQL.

Например, если вы хотите отменить привилегии DELETE и UPDATE в таблице contacts пользователю с именем adam, вы должны запустить следующий оператор REVOKE:

REVOKE DELETE, UPDATE ON contacts FROM ‘adam’@’localhost’;

REVOKE DELETE, UPDATE ON contacts FROM ‘adam’@’localhost’;

Если вы хотите отменить все разрешения (кроме GRANT OPTION) в таблице для пользователя с именем adam, вы можете использовать ключевое слово ALL следующим образом:

REVOKE ALL ON contacts FROM ‘adam’@’localhost’;

REVOKE ALL ON contacts FROM ‘adam’@’localhost’;

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

REVOKE SELECT ON contacts FROM ‘*’@’localhost’;

REVOKE SELECT ON contacts FROM ‘*’@’localhost’;

Предоставить привилегии на функции / процедуры

При работе с функциями и процедурами вы можете предоставить пользователям возможность ИСПОЛНЕНИЯ этих функций и процедур в MySQL.

Синтаксис

Синтаксис предоставления привилегий EXECUTE для функции / процедуры в MySQL:

GRANT EXECUTE ON [ PROCEDURE | FUNCTION ] object TO user;

EXECUTE — возможность выполнения функции или процедуры.
PROCEDURE — используется, когда привилегия предоставляется процедуре в MySQL.
FUNCTION — используется, когда привилегия предоставляется для функции в MySQL.
object — имя объекта базы данных, для которого предоставляются привилегии. В случае предоставления привилегий EXECUTE для функции или процедуры это будет имя функции или имя процедуры.

user — имя пользователя, которому будут предоставлены привилегии EXECUTE.

Пример — функция

Рассмотрим некоторые примеры того, как предоставить привилегии EXECUTE для функции в MySQL.

Например, если у вас есть функция GetBestPrice и вы хотите предоставить EXECUTE доступ к пользователю с именем trizor, то вы должны запустить следующий оператор GRANT:

GRANT EXECUTE ON FUNCTION GetBestPrice TO ‘trizor’@’localhost’;

GRANT EXECUTE ON FUNCTION GetBestPrice TO ‘trizor’@’localhost’;

Если вы хотите предоставить всем пользователям возможность ВЫПОЛНИТЬ эту функцию, вы должны выполнить следующий оператор GRANT:

GRANT EXECUTE ON FUNCTION GetBestPrice TO ‘*’@’localhost’;

GRANT EXECUTE ON FUNCTION GetBestPrice TO ‘*’@’localhost’;

Пример — процедура

Рассмотрим некоторые примеры того, как предоставить привилегии EXECUTE для процедуры в MySQL.

Например, если у вас была процедура с именем MySqlProc и вы хотели предоставить EXECUTE доступ к пользователю с именем trizor, то вы должны выполнить следующий оператор GRANT:

GRANT EXECUTE ON PROCEDURE MySqlProc TO ‘trizor’@’localhost’;

GRANT EXECUTE ON PROCEDURE MySqlProc TO ‘trizor’@’localhost’;

Если вы хотите предоставить всем пользователям возможность выполнять эту процедуру, то вы должны выполнить следующий оператор GRANT:

GRANT EXECUTE ON PROCEDURE MySqlProc TO ‘*’@’localhost’;

GRANT EXECUTE ON PROCEDURE MySqlProc TO ‘*’@’localhost’;

Отменить привилегии для функций/процедур

После того, как вы предоставили привилегии EXECUTE для функции или процедуры, вам может потребоваться отменить эти привилегии пользователю в MySQL. Для этого вы можете выполнить команду REVOKE.

Синтаксис

Синтаксис для отмены привилегии на функцию или процедуру в MySQL:

REVOKE EXECUTE ON [ PROCEDURE | FUNCTION ] object FROM user;

EXECUTE — возможность выполнять функцию или процедуру отменяется.
PROCEDURE — используется, когда отменяется привилегия для процедуры в MySQL.
FUNCTION — используется, когда отменяется привилегия для функции в MySQL.
object — имя объекта базы данных, для которого вы отменяете привилегии. В случае отмены привилегий EXECUTE для функции или процедуры это будет имя функции или имя процедуры.
user — имя пользователя, которому будут отменены привилегии EXECUTE.

Пример — функция

Рассмотрим некоторые примеры того, как отменить привилегии EXECUTE для функции в MySQL.

Если вы хотите отменить привилегии EXECUTE для функции GetBestPrice пользователю с именем trizor, то вы должны запустить следующий оператор REVOKE:

REVOKE EXECUTE ON FUNCTION GetBestPrice FROM ‘trizor’@’localhost’;

REVOKE EXECUTE ON FUNCTION GetBestPrice FROM ‘trizor’@’localhost’;

Если вы предоставили привилегии EXECUTE для * (всех пользователей) функции, называемой GetBestPrice, и вы хотели отменить эти привилегии EXECUTE, вы можете запустить следующий оператор REVOKE:

REVOKE EXECUTE ON FUNCTION GetBestPrice FROM ‘*’@’localhost’;

REVOKE EXECUTE ON FUNCTION GetBestPrice FROM ‘*’@’localhost’;

Пример — процедура

Рассмотрим некоторые примеры того, как отменить привилегии EXECUTE для процедуры в MySQL.

Если вы хотите отменить привилегии EXECUTE в процедуре MySqlProc пользователя с именем trizor, вы должны запустить следующий оператор REVOKE:

REVOKE EXECUTE ON PROCEDURE MySqlProc FROM ‘trizor’@’localhost’;

REVOKE EXECUTE ON PROCEDURE MySqlProc FROM ‘trizor’@’localhost’;

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

REVOKE EXECUTE ON PROCEDURE MySqlProc FROM ‘*’@’localhost’;

REVOKE EXECUTE ON PROCEDURE MySqlProc FROM ‘*’@’localhost’;

Оператор REVOKE (Microsoft Access SQL)

  • Чтение занимает 2 мин

В этой статье

Область применения: Access 2013, Office 2013Applies to: Access 2013, Office 2013

Отзывает определенные привилегии у существующего пользователя или группы.Revokes specific privileges from an existing user or group.

СинтаксисSyntax

Отзыв {привилегия[, привилегия,… ]} В таблице {Table | Объект Object|REVOKE {privilege[, privilege, …]} ON {TABLE table | OBJECT object|

Контаинтер Container} из {аусоризатионнаме[, аусоризатионнаме

,… ]}CONTAINTER container} FROM {authorizationname[, authorizationname, …]}

Оператор REVOKE состоит из следующих частей:The REVOKE statement has these parts:

ЧастьPart

ОписаниеDescription

правахprivilege

Привилегия или привилегии, которые необходимо отменить.The privilege or privileges to be revoked. Разрешения указываются с помощью следующих ключевых слов: SELECT, DELETE, INSERT, UPDATE, DROP, СЕЛЕКТСЕКУРИТИ, УПДАТЕСЕКУРИТИ, DBPASSWORD, УПДАТЕИДЕНТИТИ, CREATE, СЕЛЕКТСЧЕМА, SCHEMA и УПДАТЕОВНЕР.Privileges are specified using the following keywords: SELECT, DELETE, INSERT, UPDATE, DROP, SELECTSECURITY, UPDATESECURITY, DBPASSWORD, UPDATEIDENTITY, CREATE, SELECTSCHEMA, SCHEMA, and UPDATEOWNER.

таблицаtable

Любое допустимое имя таблицы.Any valid table name.

objectobject

Это может охватывать любой объект, не являющийся таблицей.This can encompass any non-table object. Сохраненным запросом (представление или процедура) является один из примеров.A stored query (view or procedure) is one example.

Containercontainer

Имя допустимого контейнера.The name of a valid container.

аусоризатионнамеauthorizationname

Имя пользователя или группы.A user or group name.

Инструкция REVOKE cоветы и хитрости SQL Server

Платформа SQL Server использует инструкцию REVOKE в качестве способа отмены настроек прав доступа, назначенных данному пользователю. Этот момент важен, поскольку SQL Server поддерживает дополнительную инструкцию DENY, которая явно запрещает пользователю доступ к указанному ресурсу. В SQL Server инструкцию REVOKE можно использовать для отмены привилегий, назначенных пользователю при помощи инструкции GRANT. Если вы хотите явным образом лишить пользователя определенной привилегии, вам следует использовать инструкцию DENY.

Платформа SQL Server не поддерживает предложения HIERARCHY OPTION и ADMIN OPTION стандарта ANSI. Хотя предложение ADMIN OPTION и не поддерживается, в версии команды REVOKE SQL Server есть две административные привилегии (CREATE и BACKUP). Синтаксис инструкции следующий.

REVOKE [GRANT OPTION FOR]
{[объектная_привилегия] [, …] |
[системная_привилегия]} [ON [объект] [(столбец [, …])]]|
{ТО | FROM} {имя_получателя [, …] | роль [, …] | PUBLIC | GUEST} [CASCADE]
[AS {имя_группы | имя_роли]]

Где:

GRANT OPTION FOR

Пользователь лишается права назначать конкретные привилегии другим пользователям.

объектная привилегия

Отменяются права доступа к различным инструкциям, которые могут комбинироваться в любом порядке.

ALL [PRIVELEGES]

Отменяются все привилегии, назначенные в настоящий момент указанным пользователям и/или для указанных объектов базы данных. Использование этого предложения не поощряется, поскольку способствует нечеткости программирования.

(SELECT | INSERT DELETE UPDATE}

Указанный пользователь лишается указанной привилегии доступа к указанному объекту (например, к таблице или представлению). Для отмены привилегий уровня столбца используйте список столбцов, заключенный в скобки.

REFERENCES

Отменяется право создавать и удалять ограничения типа «внешний ключ», ссылающиеся на объект базы данных как на родительский объект.

RULE

Отменяется право пользователя создавать или удалять правило в таблице или представлении.

EXECUTE

Отменяется право выполнять хранимую процедуру, пользовательскую функцию или расширенную хранимую процедуру.

системная привилегия

Отменяется право выполнения следующих инструкций: CREATE DATABASE, CREATE DEFAULT, CREATE FUNCTION, CREATE PROCEDURE, CREATE RULE, CREATE TABLE, CREATE VIEW, BACKUP DATABASE и BACKUP LOG.

ON [объект] [(столбец [, …])]

Отменяется право доступа пользователя к указанному объекту. Если объект представляет собой таблицу или представление, вы можете отменять привилегии доступа к отдельным столбцам. Вы можете отменять в таблице или представлении привилегии SELECT, INSERT, UPDATE, DELETE и REFERENCES. В столбцах таблицы или представления вы можете отменять только привилегии SELECT и UPDATE. Вы можете отменять привилегии EXECUTE в хранимой процедуре, пользовательской функции или расширенной хранимой процедуре.

[ТО | FROM] имя получателя | роль | PUBLIC | GUEST

Указываются пользователи или роли, теряющие указанную привилегию. Для отмены привилегий, назначенных роли PUBLIC (которая подразумевает всех пользователей), можно использовать ключевое слово PUBLIC. Можно перечислить несколько получателей, разделяя их имена запятыми. В SQL Server также поддерживается учетная запись GUEST, которую используют все пользователи, которые не имеют своей записи в базе данных.

CASCADE

Удаляются привилегии пользователей, которые получили свои права через предложение WITH GRANT OPTION. Это предложение является необходимым при использовании предложения GRANT OPTION FOR.

AS (имя_группы имя _роли}

Указываются права, в соответствии с которыми отменяется привилегия. В некоторых случаях пользователю могут временно потребоваться права определенной группы, чтобы отменить указанные привилегии. В этом случае, чтобы получить такие права, вы можете использовать предложение AS.

Две формы инструкции REVOKE — REVOKE объектная привилегия и REVOKE системная_привилегия являются взаимоисключающими. Не пытайтесь выполнить обе операции в одной инструкции. Ключевое синтаксическое отличие между ними состоит в том, что не следует использовать предложение ON при удалении системных привилегий. Например, чтобы удалить системную привилегию, можно использовать следующую команду.

REVOKE CREATE DATABASE, BACKUP DATABASE FROM dylan, katie

Если привилегии были присвоены пользователю с применением предложения WITH GRANT OPTION, то отменять эти привилегии следует с одновременным использованием двух предложений — WITH GRANT OPTION и CASCADE. Например:

REVOKE GRANT OPTION FOR
SELECT, INSERT, UPDATE, DELETE ON titles TO editors
CASCADE
GO

Команду REVOKE можно использовать только в текущей базе данных. Соответственно всегда неявно предполагаются опции стандарта ANSI CURRENTJJSER и CURRENTROLE. Инструкция REVOKE также используется для отмены всех параметров DENY.

Платформа SQL Server также поддерживает дополнительную инструкцию DENY. Синтаксис инструкции DENY идентичен синтаксису инструкции REVOKE. Однако, по сути, они отличаются тем, что REVOKE нейтрализует привилегии пользователя, a DENY их явно запрещает. Используйте инструкцию DENY, чтобы запретить пользователю или роли доступ к привилегии, даже если привилегия предоставляется явно или через назначение роли.

Инструкция REVOKE должна использоваться для удаления ранее предоставленных или запрещенных (DENY) привилегий. Например, пользователь kelly ушла в продолжительный отпуск по уходу за ребенком. На это время ее доступ к таблице employee был запрещен. Она вернулась, и мы вновь разрешили привилегии.

DENY ALL ON employee TO Kelly GO

REVOKE ALL ON employee TO Kelly GO

В этом примере команда REVOKE не удаляет ее привилегии, она нейтрализует действие команды DENY.

GRANT, REVOKE и привилегии

Такие операторы DDL, как GRANT (предоставить) и REVOKE (отменить), нельзя использовать непосредственно в PL/SQL, — они служат для опреде­ления возможности выполнения других SQL-операторов. Чтобы выпол­нить над таблицей Oracle некоторую операцию, например INSERT или DELETE, необходимо иметь соответствующие полномочия, которые пре­доставляются и отменяются с помощью SQL-команд GRANT и REVOKE.

Объектные и системные привилегии

Существуют привилегии двух различных видов: объектные и системные. Объектная привилегия (object privilege) разрешает выполнение определен­ной операции над конкретным объектом (например, над таблицей). Сис­темная привилегия (system privilege) разрешает выполнение операций над целым классом объектов.

В таблице 4.2 представлены существующие объектные привилегии. Объектные привилегии DDL — ALTER (изменить), INDEX (индексиро­вать), REFERENCES (ссылки) — нельзя применять непосредственно в PL/SQL (за исключением динамического SQL), так как они разрешают

выполнение операций DDL над определенным объектом.

Существует множество системных привилегий, соответствующих практически всем возможным операциям DDL. Например, системная

привилегия CREATE TABLE позволяет ее обладателю создавать таблицы.

Системная привилегия CREATE ANY TABLE дает возможность создавать таблицы в других схемах. Системные привилегии представлены в руко­водстве «Server SQL Reference».

GRANT и REVOKE

Оператор GRANT предоставляет другой схеме доступ к привилегии, а оператор REVOKE запрещает доступ, разрешенный оператором GRANT. Оба оператора могут использоваться как для объектных, так и для сис­темных привилегий.

GRANT

Для объектных привилегий синтаксис оператора GRANT таков:

GRANT привилегия ON объект ТО обладателъ_привилегии [WITH GRANT OPTION];

где привилегия — это нужная привилегия, объект — это объект, к которому разрешается доступ, а обладатель_привилегиг — пользователь, получающий привилегию. Для примера предположим, что userA — это схема базы дан­ных. Тогда оператор GRANT может выглядеть следующим образом:

GRANT SELECT ON classes TO userA;

Если указывается параметр WITH GRANT OPTION (с возможностью предоставления привилегий), то пользователь userA будет иметь возмож­ность и сам предоставлять привилегии другим пользователям. В операто­ре GRANT можно указывать несколько привилегий, например:

GRANT UPDATE, DELETE ON students TO userA;

Для системных привилегий синтаксис оператора GRANT таков:

GRANT привилегияТОобладатель_приаилегиг [WITH ADMIN OPTION];

где привилегия — это предоставляемая системная привилегия, а

— пользователь, получающий привилегию. Если в оператор
включается параметр WITH ADMIN OPTION (с возможностью администри-
рования), то        будет иметь возможность предостав-
лять привилегии другим пользователям. Например:

Г] GRANT CREATE TABLE, ALTER ANY PROCEDURE TO userA;

Как и в случае с объектными привилегиями, в одном и том же операторе GRANT можно указывать несколько привилегий.

GRANT является оператором DDL, поэтому результаты его выполнения сказываются немедленно, и после того как он выполнен, осуществляется неявное завершение (COMMIT) транзакции.

REVOKE

Для объектных привилегий синтаксис оператора REVOKE таков:

REVOKE привилегия ON объект FROM обладатель_привилеши [CASCADECONSTRAINTS] [FORCE];

где привилегия — это отменяемая привилегия, объект — это объект, на кото-
рый была предоставлена привилегия, а        — пользова-
тель, имевший эту привилегию. Например:

< Предыдущая   Следующая >

SQL GRANT, REVOKE, Privileges and Roles

Команды

DCL используются для обеспечения безопасности базы данных в среде многопользовательской базы данных. Команды DCL двух типов — GRANT и REVOKE. Только администратор базы данных или владелец объекта базы данных могут предоставлять / удалять привилегии для объекта базы данных.

SQL GRANT — это команда, используемая для предоставления пользователям доступа или привилегий к объектам базы данных.

Синтаксис команды GRANT:

GRANT имя_ привилегии
ON имя_объекта
TO {user_name | PUBLIC | role_name}
[WITH GRANT OPTION];

  • имя_ привилегии — это право доступа или привилегия, предоставленная пользователю.Некоторые из прав доступа: ALL, EXECUTE и SELECT.
  • имя_объекта — это имя объекта базы данных, например ТАБЛИЦА, ПРОСМОТР, СОХРАНЕННАЯ ПРОЦЕДУРА и ПОСЛЕДОВАТЕЛЬНОСТЬ.
  • user_name — имя пользователя, которому предоставляются права доступа.
  • user_name — имя пользователя, которому предоставляются права доступа.
  • PUBLIC используется для предоставления прав доступа всем пользователям.
  • РОЛИ — это сгруппированные вместе набор привилегий.
  • С ОПЦИЕЙ GRANT — позволяет пользователю предоставлять права доступа другим пользователям.

Например: GRANT SELECT ON сотрудника TO user1; Эта команда предоставляет пользователю 1 разрешение SELECT для таблицы сотрудников. Следует осторожно использовать параметр WITH GRANT, потому что, например, если вы предоставите привилегию SELECT для таблицы сотрудников пользователю user1 с помощью параметра WITH GRANT, тогда пользователь 1 может ПРЕДОСТАВИТЬ привилегию SELECT для таблицы сотрудников другому пользователь, например user2 и т. д.Позже, если вы ОТМЕНАЕТЕ привилегию SELECT для сотрудника у пользователя user1, у пользователя user2 по-прежнему будет привилегия SELECT для таблицы сотрудников.

Команда ОТМЕНА SQL:

Команда REVOKE удаляет права доступа или привилегии пользователя к объектам базы данных.

Синтаксис команды REVOKE:

REVOKE имя_ привилегии
ON имя_объекта
FROM {user_name | PUBLIC | role_name}

Например: ОТМЕНИТЬ ВЫБОР ДЛЯ сотрудника ОТ пользователя 1; Эта команда ОТМЕНАЕТ привилегию ВЫБРАТЬ для таблицы сотрудников от пользователя 1.Когда вы отмените привилегию REVOKE SELECT для таблицы от пользователя, пользователь больше не сможет выбирать данные из этой таблицы. Однако, если пользователь получил привилегии SELECT для этой таблицы от более чем одного пользователя, он / она может SELECT из этой таблицы, пока все, кто предоставил разрешение, не отменит его. Вы не можете ОТМЕНИТЬ привилегии, если они изначально не были предоставлены вами.

Привилегии и роли:

Привилегии: Привилегии определяют права доступа, предоставляемые пользователю в отношении объекта базы данных.Есть два типа привилегий.

1) Системные привилегии — это позволяет пользователю СОЗДАТЬ, ИЗМЕНИТЬ или УДАЛИТЬ объекты базы данных.
2) Привилегии объекта — Это позволяет пользователю ВЫПОЛНЯТЬ, ВЫБРАТЬ, ВСТАВИТЬ, ОБНОВИТЬ или УДАЛИТЬ данные из объектов базы данных, к которым применяются эти привилегии.

Некоторые системные привилегии CREATE перечислены ниже:

Системные привилегии Описание
СОЗДАТЬ объект позволяет пользователям создавать указанный объект в своей собственной схеме.
СОЗДАТЬ ЛЮБОЙ объект позволяет пользователям создавать указанный объект в любой схеме.

Вышеуказанные правила также применимы к системным привилегиям ALTER и DROP.

Некоторые объектные привилегии перечислены ниже:

Привилегии объекта Описание
ВСТАВКА позволяет пользователям вставлять строки в таблицу.
ВЫБРАТЬ позволяет пользователям выбирать данные из объекта базы данных.
ОБНОВЛЕНИЕ позволяет пользователю обновлять данные в таблице.
ВЫПОЛНИТЬ позволяет пользователю выполнять хранимую процедуру или функцию.

Роли: Роли — это набор привилегий или прав доступа. Когда в базе данных много пользователей, становится трудно предоставлять или отзывать привилегии для пользователей.Следовательно, если вы определяете роли, вы можете предоставлять или отзывать привилегии пользователям, тем самым автоматически предоставляя или отменяя привилегии. Вы можете создавать роли или использовать системные роли, заранее определенные oracle.

Некоторые из привилегий, предоставленных системным ролям, приведены ниже:

Системная роль Привилегии, предоставленные роли
ПОДКЛЮЧИТЬ CREATE TABLE, CREATE VIEW, CREATE SYNONYM, CREATE SEQUENCE, CREATE SESSION и т. Д.
РЕСУРС CREATE PROCEDURE, CREATE SEQUENCE, CREATE TABLE, CREATE TRIGGER и т. Д. Роль RESOURCE в основном используется для ограничения доступа к объектам базы данных.
DBA ВСЕ СИСТЕМНЫЕ ПРИВИЛЕГИИ

Создание ролей:

Синтаксис для создания роли:

СОЗДАТЬ РОЛЬ имя_роли
[ИДЕНТИФИЦИРОВАНО паролем];

Например: Для создания роли «разработчик» с паролем «pwd» код будет следующим:

CREATE ROLE testing
[ИДЕНТИФИЦИРОВАНО pwd];

Проще ПРЕДОСТАВЛЯТЬ или ОТЗЫВАТЬ привилегии пользователям через роль, а не назначать привилегию напрямую каждому пользователю.Если роль определяется паролем, то, когда вы ПРЕДОСТАВЛЯЕТЕ или ОТЗЫВАЕТЕ привилегии для роли, вам обязательно нужно идентифицировать ее с помощью пароля.

Мы можем ПРЕДОСТАВИТЬ или ОТЗЫВАТЬ привилегию для роли, как показано ниже.

Например: Чтобы предоставить пользователю привилегию CREATE TABLE, создав роль тестирования:

Сначала создайте роль тестирования

CREATE ROLE тестирование

Во-вторых, предоставьте привилегию CREATE TABLE для тестирования ROLE. Вы можете добавить больше привилегий для РОЛИ.

GRANT CREATE TABLE TO тестирование;

В-третьих, предоставьте роль пользователю.

ПРЕДОСТАВИТЬ тестирование пользователю user1;

Чтобы отозвать привилегию CREATE TABLE для тестирования ROLE, вы можете написать:

ОТКАЗАТЬ СОЗДАТЬ ТАБЛИЦУ ОТ тестирования;

Синтаксис для удаления роли из базы данных следующий:

DROP ROLE имя_роли;

Например: Чтобы удалить роль разработчика, вы можете написать:

DROP ROLE тестирование;

Отметить страницу в закладки

.

SQL Server: предоставление / отзыв привилегий


Узнайте, как предоставлять и отзывать привилегии в SQL Server (Transact-SQL) с синтаксисом и примерами.

Описание

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

Предоставить привилегии в таблице

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

Синтаксис

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

 ПРЕДОСТАВИТЬ привилегии НА объекте пользователю; 
привилегии

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

Привилегия Описание
ВЫБРАТЬ Возможность выполнять операторы SELECT для таблицы.
ВСТАВИТЬ Возможность выполнять инструкции INSERT для таблицы.
ОБНОВЛЕНИЕ Возможность выполнять операторы UPDATE для таблицы.
УДАЛИТЬ Возможность выполнять инструкции DELETE для таблицы.
ССЫЛКИ Возможность создать ограничение, которое ссылается на таблицу.
ИЗМЕНЕНИЕ Возможность выполнять операторы ALTER TABLE для изменения определения таблицы.
ВСЕ ALL не предоставляет все разрешения для таблицы.Скорее, он предоставляет разрешения ANSI-92, которые являются SELECT, INSERT, UPDATE, DELETE и REFERENCES.
объект
Имя объекта базы данных, для которого вы предоставляете разрешения. В случае предоставления привилегий для таблицы это будет имя таблицы.
пользователь
Имя пользователя, которому будут предоставлены эти привилегии.

Пример

Давайте рассмотрим несколько примеров того, как предоставлять привилегии для таблиц в SQL Server.

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

 GRANT SELECT, INSERT, UPDATE, DELETE для сотрудников в smithj; 

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

 ПРЕДОСТАВЛЯТЬ ВСЕ НА сотрудников кузнецу; 

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

 GRANT SELECT НА сотрудников для общественности; 

Отозвать привилегии в таблице

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

Синтаксис

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

 ОТМЕНА привилегий НА объект ОТ пользователя; 
привилегии

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

Привилегия Описание
ВЫБРАТЬ Возможность выполнять операторы SELECT для таблицы.
ВСТАВИТЬ Возможность выполнять инструкции INSERT для таблицы.
ОБНОВЛЕНИЕ Возможность выполнять операторы UPDATE для таблицы.
УДАЛИТЬ Возможность выполнять инструкции DELETE для таблицы.
ССЫЛКИ Возможность создать ограничение, которое ссылается на таблицу.
ИЗМЕНЕНИЕ Возможность выполнять операторы ALTER TABLE для изменения определения таблицы.
ВСЕ ALL не отменяет все разрешения для таблицы. Скорее, он отменяет разрешения ANSI-92, такие как SELECT, INSERT, UPDATE, DELETE и REFERENCES.
объект
Имя объекта базы данных, для которого вы отменяете привилегии.В случае отзыва привилегий для таблицы это будет имя таблицы.
пользователь
Имя пользователя, у которого будут отменены эти привилегии.

Пример

Давайте рассмотрим несколько примеров того, как отозвать привилегии для таблиц в SQL Server.

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

 ОТМЕНА УДАЛЕНИЯ ДЛЯ сотрудников ОТ anderson; 

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

 ОТЗЫВАТЬ ВСЕ ДЛЯ сотрудников ОТ Андерсона; 

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

 ОТМЕНИТЬ ВЫБОР ДЛЯ сотрудников ИЗ общественности; 
.

Как предоставлять и отзывать привилегии (разрешения) в Oracle

Как предоставлять и отзывать привилегии в Oracle

Операторы языка управления данными

используются для предоставления привилегий для таблиц, представления, последовательности, синонимы, процедуры для других пользователей или ролей.

Операторы DCL:

GRANT : использовать для предоставления привилегии для других пользователей или ролей.
REVOKE : использовать для возврата привилегий предоставлено другим пользователям и ролям.

Привилегии бывают двух типов:

  • Системные привилегии

  • Объектные привилегии

Системные привилегии обычно предоставляются администраторами баз данных пользователям. Примеры системы привилегии: CREATE SESSION, CREATE TABLE, CREATE USER и т. д.

Объектные привилегии означают привилегии на такие объекты, как таблицы, представления, синонимы, процедура. Их предоставляет владелец объекта.

Объектные привилегии:

АЛЬТЕР

Измените определение таблицы с помощью ALTER TABLE заявление.

УДАЛИТЬ

Удалите строки из таблицы с помощью оператора DELETE.

Примечание. Необходимо предоставить привилегию SELECT для таблицы. вместе с привилегией DELETE.

ИНДЕКС

Создайте индекс для таблицы с помощью CREATE INDEX заявление.

ВСТАВИТЬ

Добавьте новые строки в таблицу с помощью оператора INSERT.

ССЫЛКИ

Создайте ограничение, которое ссылается на таблицу. Вы не можете предоставить это привилегия роли.

ВЫБРАТЬ

Запросите таблицу с помощью оператора SELECT.

ОБНОВЛЕНИЕ

Измените данные в таблице с помощью оператора UPDATE.

Примечание. Необходимо предоставить привилегию SELECT для таблицы. вместе с привилегией UPDATE.

Грант

Grant используется для предоставления привилегий на таблицы, представления, процедуры другим пользователям или роли

Примеры

Предположим, у вас есть таблица emp. Теперь вы хотите предоставить выбор, обновление, вставку привилегия на этой таблице для другого пользователя «SAMI».

предоставить выбор, обновление, вставку по emp sami;

Предположим, вы хотите предоставить sami все права на таблицу emp. Тогда

предоставить все по emp sami;

Предположим, вы хотите предоставить привилегию выбора в emp для всех других пользователей база данных.Тогда

предоставить право выбора на emp для публики;

Предположим, вы хотите предоставить права на обновление и вставку только для определенных столбцов. не для всех столбцов, тогда включайте имена столбцов в оператор предоставления. За Например, вы хотите предоставить право обновления только для столбца ename и вставить привилегия только на столбцы empno и ename. Затем дайте следующую инструкцию

предоставить обновление (ename), вставить (empno, ename) на emp sami;

Предоставить саамам оператор выбора в таблице emp и сделать его способным далее передать эту привилегию вы должны предоставить предложение WITH GRANT OPTION в Заявление GRANT, подобное этому.

предоставить выбор на emp to sami с возможностью предоставления;

ОТМЕНА

Используется для отзыва привилегий, уже предоставленных другим пользователям.

Например, чтобы отозвать права выбора, обновления и вставки, которые вы предоставили Затем Сами сделайте следующее заявление.

отменить выбор, обновить, вставить в emp от sami;

Чтобы отозвать оператор select на emp, предоставленном публике, дайте следующее команда.

отменить выбор на emp из общедоступных;

Чтобы отозвать привилегию обновления в столбце ename и вставить привилегию в empno и Столбцы ename дают следующее заявление об отзыве.

отменить обновление, вставить на emp от sami;

Примечание. Вы не можете вернуть права на уровне столбца. Предположим, вы просто хотите вернуть право вставки в столбец эмали, тогда вы должны сначала взять вернуть всю привилегию вставки, а затем предоставить привилегию в столбце empno.

РОЛИ

Роль — это группа привилегий. Роль очень удобна в управлении привилегиями, Особенно в такой ситуации, когда у количества пользователей должен быть одинаковый набор привилегии.

Например, у вас в базе данных четыре пользователя: Сами, Скотт, Аши, Таня.Чтобы этим пользователям вы хотите предоставить выбор, обновите привилегию в таблице emp, выберите, удалите привилегию в таблице отдела. Для этого сначала создайте роль, дав следующее заявление

создание ролей клерков

Затем предоставьте привилегии этой роли.

выбор гранта, обновление по emp клеркам;
предоставить выбор, удалить по отделу клеркам;

Теперь предоставьте эту роль клерков таким пользователям, как этот

клерка по грантам для sami, scott, ashi, tanya;

Теперь Сами, Скотт, Аши и Таня имеют все привилегии, предоставленные клеркам. роль.

Предположим, что по прошествии одного месяца вы хотите разрешить удаление на привилегии для всех таблиц emp. эти пользователи затем просто предоставляют эту привилегию роли клерков и автоматически все у пользователей будет привилегия.

разрешить удаление по emp клеркам;

Если вы хотите вернуть права на обновление таблицы emp у этих пользователей, просто забрать это из роли клерков.

отозвать обновление emp от клерков;

Чтобы бросить роль

Клерки с пониженной ролью;

ИНФОРМАЦИЯ О ПРИВИЛЕГИЯХ

Чтобы увидеть, какие привилегии таблицы предоставлены вами другим пользователям.

ВЫБРАТЬ * ОТ USER_TAB_PRIVS_MADE

Чтобы узнать, какие привилегии таблиц предоставлены вам другими пользователями

ВЫБРАТЬ * ОТ USER_TAB_PRIVS_RECD;

Чтобы увидеть, какие привилегии уровня столбца вы предоставили другим пользователям.

ВЫБРАТЬ * ИЗ USER_COL_PRIVS_MADE

Чтобы узнать, какие привилегии уровня столбца предоставлены вам другими пользователями

ВЫБРАТЬ * ИЗ USER_COL_PRIVS_RECD;

Чтобы узнать, какие привилегии предоставлены ролям

ВЫБРАТЬ * ИЗ ПОЛЬЗОВАТЕЛЯ_ROLE_PRIVS;

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *