MariaDB привилегии Grant/Revoke

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

Описание

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

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

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

Синтаксис

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

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.

Отзыв привилегий на таблицу

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

Синтаксис

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

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
Имя пользователя, которому будут предоставлены эти привилегии.

Пример

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

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

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

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

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

При работе с функциями и процедурами вы можете предоставить пользователям возможность EXECUTE эти функции и процедуры в MariaDB.

Синтаксис

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

GRANT EXECUTE ON [ PROCEDURE | FUNCTION ] object TO user;
EXECUTE
Это означает способность выполнять функцию или процедуру.
PROCEDURE
Он используется, когда привилегия предоставляется процедуре в MariaDB.
FUNCTION
Он используется, когда привилегия предоставляется функции в MariaDB.
object
Имя объекта базы данных, для которого вы предоставляете привилегии. В случае предоставления привилегий EXECUTE для функции или процедуры это будет имя функции или имя процедуры.
user
Имя пользователя, которому будут предоставлены привилегии EXECUTE.

Пример для функции

Рассмотрим несколько примеров того, как предоставить привилегии EXECUTE для функции в MariaDB.
Например, если у вас есть функция с именем CalcValue и вы хотите предоставить EXECUTE доступ пользователю с именем ‘admin’, вы должны выполнить следующую инструкцию GRANT:

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

Пример для процедуры

Рассмотрим несколько примеров того, как предоставить привилегии EXECUTE для процедуры в MariaDB.
Например, если у вас есть процедура с именем MariaDBProc, и вы хотите предоставить EXECUTE доступ пользователю с именем ‘admin’, вы должны выполнить следующую инструкцию GRANT:

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

Отзыв привилегий на функции/процедуры

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

Синтаксис

Синтаксис отзыва привилегий на функцию или процедуру в MariaDB:

REVOKE EXECUTE ON [ PROCEDURE | FUNCTION ] object FROM user;
EXECUTE
Это означает, что возможность выполнения функции или процедуры отменяется.
PROCEDURE
Он используется, когда привилегия отменяется для процедуры в MariaDB.
FUNCTION
Используется, когда привилегия отменяется для функции в MariaDB.
object
Имя объекта базы данных, для которого вы отзываете привилегии. В случае отзыва привилегий EXECUTE для функции или процедуры это будет имя функции или имя процедуры.
user
Имя пользователя, для которого будут отменены привилегии EXECUTE.

Пример для функции

Рассмотрим несколько примеров того, как отменить привилегии EXECUTE для функции в MariaDB.
Если вы хотите отозвать привилегии EXECUTE для функции с именем CalcValue для пользователя с именем ‘admin’, вы должны выполнить следующую инструкцию REVOKE:

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

Пример для процедуры

Рассмотрим несколько примеров того, как отменить привилегии EXECUTE для процедуры в MariaDB.
Если вы хотите отозвать привилегии EXECUTE для процедуры с именем MariaDBProc для пользователя с именем ‘admin’, вы должны выполнить следующую инструкцию REVOKE:

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