PostgreSQL - ГРАНТ
В PostgreSQL, оператор GRANT используется для привилегий грантовых на роль , чтобы изменить на объекты базы данных , таких как таблицы, представления, функции и т.д.
Ниже показан синтаксис оператора GRANT:
Синтаксис: GRANT список_ привилегий | ВСЕ ON имя_таблицы TO имя_роли;
Давайте проанализируем приведенный выше синтаксис:
- Некоторые элементы привилегированного_списка : SELECT, INSERT, UPDATE, DELETE, TRUNCATE и т. Д. Параметр ALL для предоставления роли всех доступных преимуществ.
- После ключевого слова ON необходимо указать название таблицы.
- Следующим шагом будет упоминание имени роли, которой будут предоставлены привилегии.
Пример:
Создайте роль под названием Anshul, которая может входить на сервер базы данных PostgreSQL, как показано ниже:
создать роль аншул авторизоваться пароль geeks12345;
Теперь создайте таблицу с именем кандидата, как показано ниже:
создать таблицу Players ( player_id int всегда генерируется как личность, first_name varchar (100) не нуль, last_name varchar (100) не нуль, email varchar (255) not null уникальный, phone varchar (25) не нуль, первичный ключ (player_id) );
Теперь используйте роль Anshul для отдельного входа на сервер базы данных PostgreSQL и попробуйте выбрать данные из таблицы игроков из сеанса Anshul:
ВЫБРАТЬ * ИЗ игроков;
Здесь PostgreSQL вызовет ошибку, как показано ниже:
ОШИБКА: игрокам за столом отказано в разрешении
Чтобы предоставить привилегию SELECT в таблице игроков для роли anshul, оператор GRANT может быть выполнен в сеансе postgres , как показано ниже:
ВЫБОР ГРАНТА На игроков ТО аншул;
Теперь выполните оператор SELECT из сеанса аншула:
ВЫБРАТЬ * ИЗ игроков;
В-седьмых, выполните следующую инструкцию INSERT;
ВСТАВИТЬ игроков (first_name, last_name, email, phone) ЦЕННОСТИ ('raju', 'kumar', 'raju.kumar@geeforgeeks.org', '408-111-2222');
PostgreSQL выдал следующую ошибку, потому что у anshul нет привилегии INSERT для таблицы игроков:
ОШИБКА: игрокам за столом отказано в разрешении
Теперь предоставьте роли anshul привилегии INSERT , UPDATE и DELETE в таблице кандидатов:
ПРЕДОСТАВИТЬ ВСТАВКУ, ОБНОВЛЕНИЕ, УДАЛЕНИЕ На игроков ТО аншул;
В-девятых, снова выполните оператор INSERT из сеанса аншула:
ВСТАВИТЬ игроков (first_name, last_name, email, phone) ЦЕННОСТИ ('raju', 'kumar', 'raju.kumar@gmail.com', '408-111-2222');
Теперь аншул может вставлять данные в таблицу игроков. В дополнение к этому роль Anshul может обновлять или удалять данные из таблицы.
Выход: