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
Quizzes & Challenges
Quizzes
Challenges
/
Otimização de SQL e Recursos de Consulta

bookLinguagem 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, 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 possuíam.

Privilégios

Objetos

Implementação

Para conceder privilégios a um objeto em SQL para um usuário específico, podemos utilizar 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 é 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.

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

GRANT role TO user;

Por fim, podemos revogar privilégios previamente concedidos utilizando 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 5

Pergunte à IA

expand

Pergunte à IA

ChatGPT

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

Suggested prompts:

Can you explain the difference between GRANT and REVOKE with examples?

What are some best practices for managing privileges in a database?

How do roles and users differ when assigning privileges?

Awesome!

Completion rate improved to 4.55

bookLinguagem 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, 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 possuíam.

Privilégios

Objetos

Implementação

Para conceder privilégios a um objeto em SQL para um usuário específico, podemos utilizar 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 é 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.

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

GRANT role TO user;

Por fim, podemos revogar privilégios previamente concedidos utilizando 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 5
some-alt