Linguagem de Controle de Dados
Deslize para mostrar o menu
Data Control Language (DCL) é um subconjunto do SQL utilizado para controlar o acesso aos dados armazenados em um sistema de gerenciamento de banco de dados relacional.
Os comandos DCL estão principalmente relacionados à concessão ou revogação de privilégios sobre objetos do banco de dados, como tabelas, views e schemas.
Comandos DCL
Os dois principais comandos DCL são:
-
GRANT: comando utilizado para conceder privilégios específicos a usuários ou funções; -
REVOKE: comando utilizado para remover privilégios específicos de usuários ou funções que já os possuíam.
Privilégios
Objetos
Implementação
Para conceder alguns privilégios para um objeto em SQL para um usuário específico, pode-se utilizar o seguinte comando:
GRANT privileges
ON object
TO {user | role | PUBLIC};
Existem 3 tipos de funções no banco de dados para as quais é possível conceder privilégios:
- user: um usuário individual do banco de dados;
- role: uma função do banco de dados, um grupo nomeado de privilégios que pode ser atribuído a usuários (por exemplo, admin, developer, analyst);
- PUBLIC: uma palavra-chave especial que concede os privilégios especificados a todos os usuários.
É possível conceder uma função a um usuário utilizando o seguinte comando:
GRANT role TO user;
Por fim, é possível revogar privilégios previamente concedidos utilizando o seguinte comando:
REVOKE privileges
ON object
FROM {user | role | PUBLIC};
Exemplo
A seguir, alguns exemplos de como utilizar o comando GRANT para atribuir diferentes privilégios nas tabelas bankaccounts e userlogs para diferentes funções e usuários.
-- Create role
CREATE ROLE bank_manager;
-- Grant privileges to bank_manager role
GRANT SELECT, INSERT, UPDATE, DELETE ON BankAccounts TO bank_manager;
GRANT SELECT, INSERT ON UserLogs TO bank_manager;
-- Create users
CREATE USER john WITH PASSWORD 'password123';
CREATE USER jane WITH PASSWORD 'password456';
-- Assign roles to users
GRANT bank_manager TO john;
GRANT bank_manager TO jane;
Agora é possível revogar alguns dos privilégios concedidos:
-- Revoke privileges from bank_manager role
REVOKE UPDATE, DELETE ON BankAccounts FROM bank_manager;
REVOKE INSERT ON UserLogs FROM bank_manager;
-- Revoke bank_manager role from john
REVOKE bank_manager FROM john;
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Linguagem de Controle de Dados
Data Control Language (DCL) é um subconjunto do SQL utilizado para controlar o acesso aos dados armazenados em um sistema de gerenciamento de banco de dados relacional.
Os comandos DCL estão principalmente relacionados à concessão ou revogação de privilégios sobre objetos do banco de dados, como tabelas, views e schemas.
Comandos DCL
Os dois principais comandos DCL são:
-
GRANT: comando utilizado para conceder privilégios específicos a usuários ou funções; -
REVOKE: comando utilizado para remover privilégios específicos de usuários ou funções que já os possuíam.
Privilégios
Objetos
Implementação
Para conceder alguns privilégios para um objeto em SQL para um usuário específico, pode-se utilizar o seguinte comando:
GRANT privileges
ON object
TO {user | role | PUBLIC};
Existem 3 tipos de funções no banco de dados para as quais é possível conceder privilégios:
- user: um usuário individual do banco de dados;
- role: uma função do banco de dados, um grupo nomeado de privilégios que pode ser atribuído a usuários (por exemplo, admin, developer, analyst);
- PUBLIC: uma palavra-chave especial que concede os privilégios especificados a todos os usuários.
É possível conceder uma função a um usuário utilizando o seguinte comando:
GRANT role TO user;
Por fim, é possível revogar privilégios previamente concedidos utilizando o seguinte comando:
REVOKE privileges
ON object
FROM {user | role | PUBLIC};
Exemplo
A seguir, alguns exemplos de como utilizar o comando GRANT para atribuir diferentes privilégios nas tabelas bankaccounts e userlogs para diferentes funções e usuários.
-- Create role
CREATE ROLE bank_manager;
-- Grant privileges to bank_manager role
GRANT SELECT, INSERT, UPDATE, DELETE ON BankAccounts TO bank_manager;
GRANT SELECT, INSERT ON UserLogs TO bank_manager;
-- Create users
CREATE USER john WITH PASSWORD 'password123';
CREATE USER jane WITH PASSWORD 'password456';
-- Assign roles to users
GRANT bank_manager TO john;
GRANT bank_manager TO jane;
Agora é possível revogar alguns dos privilégios concedidos:
-- Revoke privileges from bank_manager role
REVOKE UPDATE, DELETE ON BankAccounts FROM bank_manager;
REVOKE INSERT ON UserLogs FROM bank_manager;
-- Revoke bank_manager role from john
REVOKE bank_manager FROM john;
Obrigado pelo seu feedback!