В этом учебном пособии вы узнаете, как предоставлять и отзывать привилегии в MariaDB с синтаксисом и примерами.
Описание
Вы можете предоставить права GRANT и REVOKE для различных объектов базы данных в MariaDB. Мы рассмотрим, как предоставлять и отзывать привилегии для таблиц, функций и процедур в MariaDB.
- Предоставить привилегии на таблицу
- Отзыв привилегий на таблицу
- Предоставление привилегий на функции/процедуры
- Отзыв привилегий на функции/процедуры
Предоставить привилегии на таблицу
Вы можете предоставить пользователям различные привилегии для таблиц. Этими разрешениями могут быть любая комбинация SELECT, INSERT, UPDATE, DELETE, INDEX, CREATE, ALTER, DROP, GRANT OPTION или ALL.
Синтаксис
Синтаксис предоставления привилегий на таблицу в MariaDB:
- 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:
1REVOKE DELETE, UPDATE ON websites FROM 'trizor'@'localhost';Если вы хотите отменить все разрешения (кроме GRANT OPTION) для таблицы для пользователя с именем 'trizor', вы можете использовать ключевое слово ALL следующим образом:
1REVOKE ALL ON websites FROM 'trizor'@'localhost';Если вы предоставили SELECT привилегии для * (то есть всем пользователям) в таблице websites и хотели отозвать эти привилегии, вы можете выполнить следующую инструкцию REVOKE:
1REVOKE SELECT ON websites FROM '*'@'localhost';Предоставление привилегий на функции/процедуры
При работе с функциями и процедурами вы можете предоставить пользователям возможность 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:1GRANT EXECUTE ON FUNCTION CalcValue TO 'admin'@'localhost';Если вы хотите предоставить ALL пользователям возможность EXECUTE на эту функцию, вы должны выполнить следующую инструкцию GRANT:
1GRANT EXECUTE ON FUNCTION CalcValue TO '*'@'localhost';Пример для процедуры
Рассмотрим несколько примеров того, как предоставить привилегии EXECUTE для процедуры в MariaDB.
Например, если у вас есть процедура с именем MariaDBProc, и вы хотите предоставить EXECUTE доступ пользователю с именем 'admin', вы должны выполнить следующую инструкцию GRANT:1GRANT EXECUTE ON PROCEDURE MariaDBProc TO 'admin'@'localhost';Если вы хотите предоставить ALL пользователям возможность EXECUTE на эту процедуру, вы должны выполнить следующую инструкцию GRANT:
1GRANT EXECUTE ON PROCEDURE MariaDBProc TO '*'@'localhost';Отзыв привилегий на функции/процедуры
После того, как вы предоставили привилегии 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:1REVOKE EXECUTE ON FUNCTION CalcValue FROM 'admin'@'localhost';Если вы предоставили привилегии EXECUTE * (всем пользователям) для функции CalcValue и хотели отозвать эти привилегии EXECUTE, вы можете выполнить следующую инструкцию REVOKE:
1REVOKE EXECUTE ON FUNCTION CalcValue FROM '*'@'localhost';Пример для процедуры
Рассмотрим несколько примеров того, как отменить привилегии EXECUTE для процедуры в MariaDB.
Если вы хотите отозвать привилегии EXECUTE для процедуры с именем MariaDBProc для пользователя с именем 'admin', вы должны выполнить следующую инструкцию REVOKE:1REVOKE EXECUTE ON PROCEDURE MariaDBProc FROM 'admin'@'localhost';Если вы предоставили привилегии EXECUTE * (всем пользователям) в процедуре с именем MariaDBProc и хотели отозвать эти привилегии EXECUTE, вы можете запустить следующую инструкцию REVOKE:
1REVOKE EXECUTE ON PROCEDURE MariaDBProc FROM '*'@'localhost';