В этом учебном пособии вы узнаете, как предоставлять и отзывать привилегии в PostgreSQL с помощью синтаксиса и примеров.
Описание
Вы можете предоставить права GRANT и REVOKE для различных объектов базы данных в PostgreSQL. Мы рассмотрим, как предоставлять и отзывать привилегии для таблиц в PostgreSQL.
Предоставить привилегии на таблицу
Вы можете предоставить пользователям различные привилегии для таблиц. Этими разрешениями могут быть любая комбинация SELECT, INSERT, UPDATE или DELETE, INDEX, CREATE, ALTER, DROP, GRANT OPTION or ALL.
Синтаксис
Синтаксис для предоставления привилегий на таблицу в PostgreSQL:
- privileges
- Привилегии назначать. Это может быть любое из следующих значений:
Привилегии Описание SELECT Возможность выполнять операторы SELECT для таблицы. INSERT Возможность выполнять операторы INSERT для таблицы. UPDATE Возможность выполнять операторы UPDATE для таблицы. DELETE Возможность выполнять операторы DELETE для таблицы. TRUNCATE Возможность выполнять операторы TRUNCATE на таблице. REFERENCES Возможность создания внешних ключей (требуются привилегии как для родительских, так и для дочерних таблиц). TRIGGER Возможность создавать триггеры для таблицы. CREATE Возможность выполнять операторы CREATE TABLE. ALL Предоставляет все привилегии - object
- Имя объекта базы данных, для которого вы предоставляете привилегии. В случае предоставления привилегий для таблицы это будет имя таблицы.
- user
- Имя пользователя, которому будут предоставлены эти привилегии.
Пример
Рассмотрим некоторые примеры, чтобы понять как предоставлять привилегии на таблицу в PostgreSQL.
Например, если вы хотите предоставить привилегии SELECT, INSERT, UPDATE и DELETE для таблицы с именем products для пользователя с именем trizor, вы должны выполнить следующий оператор GRANT:
Вы также можете использовать ключевое слово ALL, чтобы указать, что вы хотите предоставить все привилегии пользователю с именем trizor. Например:
Если вы хотите предоставить всем пользователям только доступ SELECT к таблице products, вы можете предоставить привилегии PUBLIC. Например:
Отзыв привилегий на таблицу
Как только вы предоставите привилегии, вам может потребоваться отменить некоторые или все эти привилегии. Для этого вы можете запустить команду revoke. Вы можете отозвать любую комбинацию SELECT, INSERT, UPDATE, DELETE, TRUNCATE, REFERENCES, TRIGGER, CREATE или ALL.
Синтаксис
Синтаксис для отзыва привилегий на таблицу в PostgreSQL:
- privileges
- Привилегии для отзыва. Это может быть любое из следующих значений:
Привилегии Описание SELECT Возможность выполнять операторы SELECT для таблицы. INSERT Возможность выполнять операторы INSERT для таблицы. UPDATE Возможность выполнять операторы UPDATE для таблицы. DELETE Возможность выполнять операторы DELETE для таблицы. TRUNCATE Возможность выполнять операторы TRUNCATE на таблице. REFERENCES Возможность создания внешних ключей (требуются привилегии как для родительских, так и для дочерних таблиц). TRIGGER Возможность создавать триггеры для таблицы. CREATE Возможность выполнять операторы CREATE TABLE. ALL Предоставляет все привилегии - object
- Имя объекта базы данных, для которого вы отзываете привилегии. В случае отзыва привилегий для таблицы это будет имя таблицы.
- user
- Имя пользователя, для которого будут отменены эти привилегии.
Пример
Рассмотрим примеры как отзывать привилегии для таблицы in PostgreSQL.
Например, если вы хотите отозвать привилегии DELETE и UPDATE для таблицы с именем products для пользователя с именем trizor, вы должны выполнить следующий оператор REVOKE:
Если вы хотите отозвать все привилегии на таблицу для пользователя с именем trizor, вы можете использовать ключевое слово ALL следующим образом:
Если вы предоставили привилегии SELECT * (то есть всем пользователям) в таблице products и хотели отозвать эти привилегии, вы можете выполнить следующий оператор REVOKE: