segunda-feira, 16 de novembro de 2020

Níveis de Privilégios de banco de dados

Há três camadas concêntricas de privilégios do nível do Banco de Dados, Connect, Resource e DBA, que autoriza o aumento do poder sobre o acesso e controle do Banco de Dados. Apenas um usuário com o privilégio de DBA pode conceder ou revogar privilégios no nível do banco de dados. 

 
 
 
 
 
 
 
 
 
 
 
 
Por causa da organização hierárquica dos privilégios, se você revogar o privilégio RESOURCE ou CONNECT de um usuário com privilégio DBA, a declaração não terá efeito. Se você revogar o privilégio de DBA de um usuário, o usuário retém o privilégio CONNECT no Banco de Dados. Para negar o acesso ao Banco de Dados a um usuário com privilégio de DBA ou RESOURCE, você deve primeiro revogar o privilégio DBA ou RESOURCE e, em seguida, revogar o privilégio CONNECT em uma instrução REVOKE separada.
 
Da mesma forma, se você revogar o privilégio CONNECT de um usuário que possui o privilégio RESOURCE, a declaração não terá efeito. Se você revogar o privilégio de RESOURCE de um usuário, o usuário retém o privilégio CONNECT no Banco de Dados.
 
Somente usuários ou PUBLIC podem ter privilégios de nível de Banco de Dados. Você não pode revogar esses privilégios de uma role, porque uma role não pode conter privilégios de nível de Banco de Dados.
 
A tabela a seguir lista a palavra-chave para cada privilégio no nível do Banco de Dados.
 
 
Privilégios Efeitos
DBA
Tem todos os recursos do privilégio RESOURCE e pode executar as seguintes operações adicionais:
  • Conceda qualquer privilégio de nível de banco de dados, incluindo o privilégio de DBA, a outro usuário.
  • Conceda qualquer privilégio de nível de tabela a outro usuário ou a uma role.
  • Conceda uma role a um usuário ou a outra role.
  • Revogar um privilégio cujo concedente você especifica como revogador na cláusula AS da instrução REVOKE.
  • Restrinja o privilégio de execução aos DBAs ao registrar um UDR.
  • Execute a instrução SET SESSION AUTHORIZATION.
  • Crie qualquer objeto de banco de dados.
  • Crie tabelas, views e índices, designando outro usuário como proprietário desses objetos.
  • Altere, elimine ou renomeie objetos de banco de dados, independentemente de quem os possui.
  • Execute a opção DROP DISTRIBUTIONS da instrução UPDATE STATISTICS.
  • Execute as instruções DROP DATABASE e RENAME DATABASE.
RESOURCE
Permite estender a estrutura do banco de dados. Além dos recursos do privilégio CONNECT, o detentor do privilégio de RESOURCE pode realizar as seguintes operações:
 
  • Criar novas tabelas.
  • Criar novos indices.
  • Criar novas UDR’s.
  • Criar novos tipos de dados.
CONNECT
Se você possui esse privilégio, você pode consultar e modificar dados, e modifique o esquema do banco de dados se você possuir o objeto de banco de dados que deseja modificar. Um usuário com o privilégio Connect pode realizar as seguintes operações:
 
  • Conecte-se ao banco de dados com a instrução CONNECT ou outra instrução de conexão.
  • Execute as instruções SELECT, INSERT, UPDATE e DELETE, desde que o usuário tenha os privilégios de nível de tabela necessários.
  • Criar Views, desde que o usuário tenha o privilégio SELECT nas tabelas subjacentes.
  • Criar synonyms.
  • Criar tabelas temporarias, e criação de indices nas tabelas temporárias.
  • Aterar ou eliminar uma tabela ou um índice, se o usuario for o proprietaria dessa tabela ou indice.
  • Conceder privilégio em uma tabela, se o usuário for proprietario da tabela (ou recebeu privilégio na tabela com a palavra-chave WITH GRANT OPTION).
 
 Dica: Para determinar quais usuários têm privilégios de DBA em um banco de dados, execute esta consulta no DB-Access ou em seu aplicativo:
 

SELECT username,usertype FROM sysusers; 

A saída mostra os nomes de usuário (por exemplo, público e informix) seguidos por um dos seguintes códigos:
  • D = Privilégio de DBA
  • C = Privilégio de CONNECT
  • R = Privilégio de RESOURCE
 

Nenhum comentário:

Postar um comentário