Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Linguagem de Controle de Dados | Alguns Tópicos Adicionais
Técnicas Avançadas em SQL

bookLinguagem de Controle de Dados

Linguagem de Controle de Dados (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, visões e esquemas.

Comandos DCL

Os dois principais comandos DCL são:

  1. GRANT: Este comando é utilizado para conceder privilégios específicos a usuários ou funções;

  2. REVOKE: Este comando é utilizado para remover privilégios específicos de usuários ou funções que já os tenham recebido anteriormente.

Privilégios

Objetos

Implementação

Para conceder alguns privilégios para um objeto em SQL para um usuário específico, podemos usar a seguinte instrução:

GRANT privileges
ON object
TO {user | role | PUBLIC};

Existem 3 tipos de funções no banco de dados para as quais você pode 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.

Podemos conceder uma função a um usuário usando a seguinte instrução:

GRANT role TO user;

Por fim, podemos revogar privilégios concedidos anteriormente usando a seguinte instrução:

REVOKE privileges
ON object
FROM {user | role | PUBLIC};

Exemplo

Aqui estão alguns exemplos de como usar 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 podemos 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;
question mark

Qual privilégio permite que um usuário leia dados de uma tabela?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 3. Capítulo 6

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Awesome!

Completion rate improved to 4.35

bookLinguagem de Controle de Dados

Deslize para mostrar o menu

Linguagem de Controle de Dados (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, visões e esquemas.

Comandos DCL

Os dois principais comandos DCL são:

  1. GRANT: Este comando é utilizado para conceder privilégios específicos a usuários ou funções;

  2. REVOKE: Este comando é utilizado para remover privilégios específicos de usuários ou funções que já os tenham recebido anteriormente.

Privilégios

Objetos

Implementação

Para conceder alguns privilégios para um objeto em SQL para um usuário específico, podemos usar a seguinte instrução:

GRANT privileges
ON object
TO {user | role | PUBLIC};

Existem 3 tipos de funções no banco de dados para as quais você pode 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.

Podemos conceder uma função a um usuário usando a seguinte instrução:

GRANT role TO user;

Por fim, podemos revogar privilégios concedidos anteriormente usando a seguinte instrução:

REVOKE privileges
ON object
FROM {user | role | PUBLIC};

Exemplo

Aqui estão alguns exemplos de como usar 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 podemos 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;
question mark

Qual privilégio permite que um usuário leia dados de uma tabela?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 3. Capítulo 6
some-alt