Nous publierons des informations sur l'accès et la sécurité des utilisateurs dans la base de données oracle. Cet article donnera de bonnes informations sur Créer un utilisateur dans Oracle, les privilèges système et les privilèges d'objet Oracle, comment accorder les privilèges aux utilisateurs, comment afficher tous les privilèges d'un utilisateur dans Oracle
Instruction CREATE USER
Il est utilisé pour créer un utilisateur (schéma).
L'authentification par défaut pour un nouvel utilisateur est la base de données. L'utilisateur se voit attribuer un mot de passe et le mot de passe est conservé crypté dans la base de données. Il existe deux autres types d'authentification possibles, le premier est l'authentification externe utilisant le niveau du système d'exploitation. L'authentification externe vérifie le mot de passe au niveau du système d'exploitation.
L'autre est l'authentification globale qui vérifie le mot de passe de l'utilisateur dans le service de sécurité Oracle ou un autre service d'annuaire tiers.
Attribuer des attributs –
Nous pouvons modifier les attributs de l'utilisateur à l'aide de ALTER USER. Nous pouvons soit les modifier, soit les attribuer
Créer une déclaration d'utilisateur avec certains attributs définis sera
CREATE USER SCOTT IDENTIFIED BY TTOC DEFAULT TABLESPACE USERS QUOTA 10M ON USERS TEMPORARY TABLESPACE temp QUOTA 5M ON system PROFILE application_user PASSWORD EXPIRE
Privilèges du système Oracle
Il permet au bénéficiaire de créer, modifier, supprimer et gérer des objets de base de données. Par exemple, les privilèges permettant de créer des espaces de table et de supprimer les lignes de n'importe quelle table dans une base de données sont des privilèges système.
Oracle a plus de 100 privilèges système (trouvé dans la table SYSTEM_PRIVILEGE_MAP).
Il existe 2 privilèges spéciaux dans une base de données Oracle appelée SYSDBA et SYSOPER. Les deux privilèges autorisent les opérations de base de données telles que STARTUP, SHUTDOWN, OPEN, MOUNT, BACKUP, ARCHIVELOG et RECOVER. SYSDBA autorise la commande CREATE DATABASE et les options CHANGE CHARACTER SET.
Les privilèges système sont fournis par l'administrateur de la base de données aux utilisateurs à l'aide de la commande grant et révoqués à l'aide de la commande revoke
Si le DBA doit fournir un privilège système à quelqu'un afin qu'une autre personne puisse également l'accorder, il doit alors lui être attribué avec l'option d'administration
GRANT create session TO user; GRANT create session TO user with admin option; Revoke create session from user;
Privilèges système de l'utilisateur
Lorsque l'utilisateur est créé, nous accordons généralement les privilèges système ci-dessous
- CRÉER UNE SESSION
- CRÉER UN TABLEAU
- CRÉER UNE VUE
- CRÉER UNE SÉQUENCE
- CRÉER UNE PROCÉDURE
Avec cet utilisateur peut commencer à créer la table et d'autres objets.
Sample
CREATE USER "TEST" IDENTIFIED BY TEST
DEFAULT TABLESPACE "TOOLS"
TEMPORARY TABLESPACE "TEMP";
grant CREATE TRIGGER to TEST;
grant CREATE PROCEDURE to TEST;
grant CREATE SESSION to TEST;
grant CREATE TYPE to TEST;
grant CREATE TABLE to TEST;
grant CREATE VIEW to TEST;
grant ALTER SESSION to TEST;
grant CREATE SEQUENCE to TEST;
grant CREATE SYNONYM to TEST;
grant CREATE ANY SYNONYM to TEST;
grant UNLIMITED TABLESPACE to TEST;
Privilèges d'objet Oracle
Celles-ci sont accordées sur des objets de base de données (tels qu'une table, une vue, une procédure, etc.…)
Le propriétaire a tous les privilèges et un propriétaire peut donner des privilèges spécifiques sur les objets
Le propriétaire peut fournir les privilèges à l'aide de la commande ci-dessous
GRANT privileges ON object TO user;
Les privilèges peuvent être sélectionner, insérer, mettre à jour, supprimer ou TOUS
Si le propriétaire souhaite accorder des privilèges à tous les utilisateurs
GRANT privileges ON object TO public;
Si le propriétaire souhaite accorder un privilège à l'utilisateur avec une option d'octroi. En gros, cela signifie que le bénéficiaire peut ensuite attribuer ce privilège à d'autres
GRANT privileges ON object TO user with grant option;
De même, nous avons la commande revoke pour supprimer les privilèges des objets
Qu'est-ce qu'un rôle Oracle ?
Un rôle est un objet de base de données utilisé pour appliquer des privilèges. Un utilisateur peut se voir attribuer un rôle afin de définir des privilèges sur les objets de la base de données :
GRANT EBS_ADMIN TO SCOTT;
Il accordera le rôle EBS_ADMIN avec tous ses privilèges à l'utilisateur SCOTT.
Créer et utiliser des rôles
La commande CREATE ROLE [IDENTIFIED BY
Quelle est la différence entre les privilèges système et objet ?
Tableaux et vues du dictionnaire de données
Oracle a fourni des vues de dictionnaire de données pour obtenir des informations sur les privilèges
Il existe trois catégories de vues
Vérification des vues de privilèges
Requêtes utiles pour les privilèges
comment vérifier les privilèges de l'utilisateur dans oracle
col role for a16 col pv for a75 hea 'PRIVILEGE OR ROLE' break on role on type skip 1 define usercheck = 'SH' select grantee, 'ROL' type, granted_role pv from dba_role_privs where grantee = '&usercheck' union select grantee, 'PRV' type, privilege pv from dba_sys_privs where grantee = '&usercheck' union select grantee, 'OBJ' type, max(decode(privilege,'WRITE','WRITE,'))||max(decode(privilege,'READ','READ'))|| max(decode(privilege,'EXECUTE','EXECUTE'))||max(decode (privilege,'SELECT','SELECT'))|| max(decode(privilege,'DELETE',',DELETE'))||max(decode (privilege,'UPDATE',',UPDATE'))|| max(decode(privilege,'INSERT',',INSERT'))||' ON '||object_type||' "'||a.owner||'.'||table_name||'"' pv from dba_tab_privs a, dba_objects b where a.owner=b.owner and a.table_name = b.object_name and a.grantee='&usercheck' group by a.owner,table_name,object_type,grantee union select username grantee, '---' type, 'empty user ---' pv from dba_users where not username in (select distinct grantee from dba_role_privs) and not username in (select distinct grantee from dba_sys_privs) and not username in (select distinct grantee from dba_tab_privs) and username like '%&usercheck%' group by username order by grantee, type, pv;
Déterminer les privilèges système accordés à l'utilisateur
SELECT GRANTEE, PRIVILEGE FROM DBA_SYS_PRIVS WHERE GRANTEE = 'USER';
Vérification des privilèges de table que vous accordez aux autres utilisateurs.
SELECT * FROM USER_TAB_PRIVS_MADE
Vérification des privilèges de table qui vous sont accordés par d'autres utilisateurs
SELECT * FROM USER_TAB_PRIVS_RECD;
Vérification des privilèges au niveau des colonnes que vous accordez aux autres utilisateurs.
SELECT * FROM USER_COL_PRIVS_MADE;
Vérification des privilèges au niveau des colonnes qui vous sont accordés par d'autres utilisateurs
SELECT * FROM USER_COL_PRIVS_RECD;
Vérification des privilèges accordés aux rôles
SELECT * FROM USER_ROLE_PRIVS;
Comment accorder et révoquer des privilèges dans Oracle
Objects grant/revoke from user grant select on dept to public; revoke select on dept from public; Objects grant/revoke from Role grant delete on dept to dept_role; revoke update on dept from dept_role;
Liens associés
Gestion des privilèges et des rôles des utilisateurs :documentation Oracle pour référence supplémentaire
Vues Oracle :guide complet sur la façon de créer une vue oracle, de supprimer des vues oracle, de modifier des vues oracle, de déterminer la requête de la vue déjà créée
créer table dans oracle :les tables sont l'unité de base de stockage de données dans une base de données Oracle. nous couvrons comment utiliser la commande Oracle create table pour créer une table avec une clé étrangère/clé primaire
Séquences dans oracle :qu'est-ce qu'une séquence dans oracle, description de toutes les options, comment les créer, nouvelle fonctionnalité des séquences dans Oracle 12c , Comment les supprimer et les modifier
créer un utilisateur dans oracle 12c :Découvrez comment créer un utilisateur commun dans oracle 12c, créer un utilisateur commun et local, créer un rôle commun et un rôle local et comment les gérer
J'espère que vous aimez le message.Veuillez fournir des commentaires
Cours recommandés
Voici le joli cours Udemy pour Oracle SQL
Oracle-Sql-Step-by-step :Ce cours couvre les bases de SQL, les jointures, la création de tables et la modification de sa structure, la création de vues, l'union, l'union -all et bien d'autres choses . Un excellent cours et un cours indispensable pour les débutants SQL
Le cours complet de certification Oracle SQL :C'est un bon cours pour tous ceux qui veulent être prêts à travailler pour les compétences de développeur SQL. Un cours bien expliqué
Oracle SQL Developer :Essentials, Tips and Tricks :l'outil de développement Oracle SQL est utilisé par de nombreux développeurs. Ce cours nous donne des astuces et des leçons sur la façon de l'utiliser efficacement et de devenir un développeur sql productif
Oracle SQL Performance Tuning Masterclass 2020 :Le réglage des performances est l'une des compétences essentielles et les plus recherchées. C'est un bon cours pour en savoir plus et commencer à ajuster les performances SQL