Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment créer un utilisateur dans Oracle et attribuer des privilèges

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 ] crée un rôle. L'attribution de privilèges au rôle s'effectue à l'aide de la commande GRANT. La révocation des privilèges se fait à l'aide de REVOKE FROM ROLE.

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