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:
|
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:
|
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:
|
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