Por motivos de trabalho, a Oracle usa mais bancos de dados, e a parte de definição de autoridade também é usada com mais frequência. Hoje, utilizo principalmente dados de backup, ou seja, exporto dados como exemplo. Vou falar brevemente sobre questões de permissão e também vou dar a mim mesmo um resumo em etapas.
1. Classificação de permissão
As permissões são classificadas de acordo com características específicas e divididas em permissões de sistema e permissões de entidade.
Autoridade de sistema significa executar operações de gerenciamento de autoridade em usuários, e autoridade de entidade refere-se a executar operações de gerenciamento de autoridade em entidades, como tabelas e visualizações.
Em segundo lugar, para a classificação das permissões do sistema
As permissões do sistema são divididas em dois tipos: DBA com autoridade máxima e usuários comuns; DBA será designado durante o processo de instalação, geralmente usuários sys, é claro, você também pode autorizar seus usuários como DBA por meio de usuários sys, o método de autorização é tão segue:
grant dba to kqportal;
Claro, especificar dba definitivamente terá muitas permissões, mas eu recomendo fortemente que você não faça isso a menos que tenha tarefas especiais de gerenciamento; a forma de revogar a autorização é a seguinte:
revoke dba from kqportal;
Observação: a permissão pode ser concedida ou revogada da mesma maneira.
3. Classificação das permissões da entidade
A classificação de permissão de entidade é obter ou manipular a tabela ou visualização do usuário e outras entidades; por padrão, o usuário recém-criado tem algumas permissões. Se quiser mais permissões, você pode fazer o seguinte:
grant connect,resource,create session,create table,create view,create sequence to kqportal;
Quatro, backup de dados
Como o banco de dados foi esvaziado inexplicavelmente ontem, o sistema foi interrompido temporariamente. Felizmente, o instantâneo do banco de dados não foi destruído e os dados foram recuperados; aqui está um pouco mais, em geral, depois que os dados são esvaziados, nenhuma operação ddl é realizada Restaure os dados para aquele momento.
Diante da situação acima, escrevi um script para concluir o trabalho de backup automático de dados. O script será adicionado posteriormente e a otimização ainda está sendo feita.
Uma instrução de exportação comumente usada é escrita no script, da seguinte maneira:
exp kqportal/123456@ORCL file=D:\ksk\OrclDBackup\backupdbdir\kqportal_orcl_%BACKUPDATE%.dmp full=y
Você também deve ter notado que uma frase full = y foi adicionada; este parâmetro significa exportar todas as tabelas, incluindo tabelas do sistema e tabelas em outros espaços de tabela.
Se houver necessidade de exportar todas as tabelas, a frase acima não é suficiente, e será informado que é necessária autorização para exportar. Você pode usar a seguinte declaração para autorizar:
--需要以dba权限用户登录,进行EXP_FULL_DATABASE角色的授权
grant EXP_FULL_DATABASE to kqportal;
A declaração acima permite que você atinja o objetivo de exportar todas as tabelas e dados para usuários comuns. (Claro, se houver um papel EXP_FULL_DATABASE, haverá um papel IMP_FULL_DATABASE. Falarei sobre isso mais tarde, mas é quase o mesmo)
Mas, a seguir, vou me concentrar em explicar quais problemas surgirão após a execução da instrução acima e como resolvê-los.
A instrução acima oferece a capacidade de exportar todas as tabelas e dados, mas se houver vários espaços de tabela em seu banco de dados e tabelas com o mesmo nome de tabela nos espaços de tabela, seu programa não será executado. Um erro será relatado. Mais de uma tabela encontrada no namespace.
A solução final é executar a seguinte instrução:
revoke SELECT ANY TABLE from exp_full_database;
Explicação: EXP_FULL_DATABASE contém 8 permissões, incluindo uma permissão SELECT ANY TABLE Por causa desta permissão, os usuários kqportal podem exp usuários mema em qualquer tabela.
Portanto, tentei retirar a permissão SELECT ANY TABLE de EXP_FULL_DATABASE e, em seguida, resolvi o problema.
Essa é a única maneira que penso agora, e não há outros problemas no teste atual. Se houver outros efeitos colaterais, vou adicioná-los mais tarde.