Autorisations d'Oracle sur l'exportation et l'importation de données

Pour des raisons de travail, Oracle utilise plus de bases de données et la partie de définition des droits est également utilisée plus fréquemment. Aujourd'hui, je prends principalement des données de sauvegarde, c'est-à-dire des données d'exportation comme exemple. Je vais parler brièvement des problèmes d'autorisation, et je vais également me donner un résumé par étapes.

1. Classification des autorisations

Les autorisations sont classées en fonction de caractéristiques spécifiques et divisées en autorisations système et autorisations d'entité.

L'autorité système signifie effectuer des opérations de gestion d'autorité sur les utilisateurs, et l'autorité d'entité fait référence à l'exécution d'opérations de gestion d'autorité sur des entités telles que des tables et des vues.

Deuxièmement, pour la classification des autorisations système

Les autorisations système sont divisées en deux types: DBA avec la plus haute autorité et les utilisateurs ordinaires; DBA sera désigné pendant le processus d'installation, généralement des utilisateurs sys, bien sûr, vous pouvez également autoriser vos utilisateurs en tant que DBA via des utilisateurs sys, la méthode d'autorisation est la suit:

grant dba to kqportal;

Bien sûr, la spécification de dba aura certainement beaucoup d'autorisations, mais je vous recommande fortement de ne pas le faire à moins que vous n'ayez des tâches de gestion spéciales; la façon de révoquer l'autorisation est la suivante:

revoke dba from kqportal;

Remarque: l'autorisation peut être accordée ou révoquée de la même manière.

3. Classification des autorisations d'entité

La classification des autorisations d'entité consiste à obtenir ou à manipuler la table ou la vue de l'utilisateur et d'autres entités. Par défaut, l'utilisateur nouvellement créé dispose de certaines autorisations. Si vous souhaitez davantage d'autorisations, vous pouvez procéder comme suit:

grant connect,resource,create session,create table,create view,create sequence to kqportal;

Quatre, sauvegarde des données

La base de données ayant été vidée inexplicablement hier, le système a été temporairement arrêté. Heureusement, l'instantané de la base de données n'a pas été détruit et les données ont été récupérées; voici un peu plus, en général, une fois les données vidées, aucune opération ddl n'est effectuée Restaurez les données à cette heure.

Au vu de la situation ci-dessus, j'ai écrit un script pour terminer le travail de sauvegarde automatique des données. Le script sera ajouté plus tard et l'optimisation est toujours en cours.

Une instruction d'exportation couramment utilisée est écrite dans le script, comme suit:

exp kqportal/123456@ORCL file=D:\ksk\OrclDBackup\backupdbdir\kqportal_orcl_%BACKUPDATE%.dmp full=y

Vous devriez également avoir remarqué qu'une phrase de full = y a été ajoutée; ce paramètre signifie exporter toutes les tables, y compris les tables système et les tables dans d'autres espaces table.

S'il est nécessaire d'exporter tous les tableaux, la phrase ci-dessus ne suffit pas et il sera indiqué qu'une autorisation est requise pour exporter. Vous pouvez utiliser l'instruction suivante pour autoriser:

--需要以dba权限用户登录,进行EXP_FULL_DATABASE角色的授权
grant EXP_FULL_DATABASE to kqportal;

L'instruction ci-dessus vous permet d'atteindre l'objectif d'exporter toutes les tables et données sous des utilisateurs ordinaires. (Bien sûr, s'il y a un rôle EXP_FULL_DATABASE, il y aura un rôle IMP_FULL_DATABASE. J'en parlerai plus tard, mais c'est presque la même chose)

Mais ci-dessous, je me concentrerai sur l'explication des problèmes qui surviendront après l'exécution de la déclaration ci-dessus et comment résoudre ces problèmes.

L'instruction ci-dessus vous permet d'exporter toutes les tables et données, mais s'il y a plusieurs espaces table dans votre base de données et qu'il y a des tables avec le même nom de table dans les espaces table, votre programme ne s'exécutera pas. Mesure réelle. Une erreur sera signalée Plus d'une table trouvée dans l'espace de noms.

La solution finale consiste à exécuter l'instruction suivante:

revoke SELECT ANY TABLE from exp_full_database;

Explication: EXP_FULL_DATABASE  contient 8 autorisations, y compris une autorisation SELECT ANY TABLE . Grâce à cette autorisation, les utilisateurs de kqportal peuvent ajouter des utilisateurs mema sur n'importe quelle table.

J'ai donc essayé de retirer l' autorisation SELECT ANY TABLE de EXP_FULL_DATABASE , puis j'ai résolu le problème.

C'est la seule façon dont je pense maintenant, et il n'y a pas d'autres problèmes dans le test actuel.S'il y a d'autres effets secondaires, je les ajouterai plus tard.

Je suppose que tu aimes

Origine blog.csdn.net/joyksk/article/details/107359688
conseillé
Classement