Académique Documents
Professionnel Documents
Culture Documents
I- Mécanismes de base
I.1 Utilisateur
Les accès à la base de données s’effectuent par l’intermédiaire d’utilisateurs (comptes SGBD).
Chaque utilisateur est défini par :
Un nom d’utilisateur
Un mot de passe
Un ensemble de privilèges
Un profil (sous Oracle)
I.2 Privilèges
Un privilège est un droit accordé à un utilisateur pour pouvoir exécuter certaines
commandes SQL ou d’accéder à des objets de la base de données.
Un privilège est attribué directement à un utilisateur ou à un rôle. Un rôle sera, par la suite
attribué à un ou plusieurs utilisateurs.
I.3 Rôle
C’est un ensemble de privilèges (système et/ou objet) pouvant être attribué à un utilisateur ou à un
autre rôle.
Le contrôle des accès aux bases de données par : Samir BOUCETTA Page |1
Un profil utilisateur est un ensemble de limites sur les ressources de la base de données et/ou le mot
de passe utilisateur. Une fois que vous ayez attribué un profil à un utilisateur, ce dernier ne pourra
pas dépasser les limites de ressources et/ou de mots de passe définies par le profil.
Le contrôle des accès aux bases de données par : Samir BOUCETTA Page |2
IV- Gestion des utilisateurs
auth_option: {
IDENTIFIED BY 'auth_string'
| IDENTIFIED BY RANDOM PASSWORD
| IDENTIFIED WITH auth_plugin
| IDENTIFIED WITH auth_plugin BY 'auth_string'
| IDENTIFIED WITH auth_plugin BY RANDOM PASSWORD
| IDENTIFIED WITH auth_plugin AS 'auth_string'
| IDENTIFIED WITH auth_plugin [initial_auth_option]
}
Le contrôle des accès aux bases de données par : Samir BOUCETTA Page |3
auth_plugin specifie le nom d’un plugin d’authentification. Le nom du plugin peut être une
chaine de caractères entre cotes ou un nom sans cotes. Les noms des plugins sont stockés dans la
colonne plugin de la table mysql.user.
initial_auth_option: {
INITIAL AUTHENTICATION IDENTIFIED BY {RANDOM PASSWORD | 'auth_string'}
| INITIAL AUTHENTICATION IDENTIFIED WITH auth_plugin AS 'auth_string'
}
resource_option: {
MAX_QUERIES_PER_HOUR count
| MAX_UPDATES_PER_HOUR count
| MAX_CONNECTIONS_PER_HOUR count
| MAX_USER_CONNECTIONS count
}
password_option: {
PASSWORD EXPIRE [DEFAULT | NEVER | INTERVAL N DAY]
| PASSWORD HISTORY {DEFAULT | N}
| PASSWORD REUSE INTERVAL {DEFAULT | N DAY}
| PASSWORD REQUIRE CURRENT [DEFAULT | OPTIONAL]
| FAILED_LOGIN_ATTEMPTS N
| PASSWORD_LOCK_TIME {N | UNBOUNDED}
}
lock_option: {
ACCOUNT LOCK
| ACCOUNT UNLOCK
}
Pour activer un compte utilisateur (MP_SSR) sur une base de données (Db), utiliser la commande :
system Mysql –u MP_SSR -p Db ;
Le contrôle des accès aux bases de données par : Samir BOUCETTA Page |4
REVOKE {PrivilegeSysteme | Role}
[,{PrivilegeSysteme | Role} …]
FROM {NomUser | Role | PUBLIC}
[,{NomUser | Role | PUBLIC}, …];
ALTER ANY INDEX, ALTER ANY ROLE, ALTER ANY TABLE, ALTER PROFILE,
ALTER USER, CREATE ANY INDEX, CREATE ANY PROCEDURE, CREATE ANY
TABLE, CREATE ANY VIEW, CREATE ANY INDEX, CREATE ROLE, CREATE
USER, DELETE ANY TABLE, DROP ANY INDEX, DROP ANY ROLE, GRANT ANY
PRIVILEGE, GRANT ANY ROLE, SELECT ANY TABLE, UPDATE ANY TABLE, …
SELECT [ (Col1 ; …) ]
INSERT
UPDATE [ (Col1 ; …) ]
DELETE
EXECUTE
ALTER
INDEX
ALL
Le contrôle des accès aux bases de données par : Samir BOUCETTA Page |5
V-2/ Gestion des privilèges sous MySQL
Les privilèges suivants sont des privilèges administratifs et ne peuvent être attribues que
globalement : CREATE TABLESPACE, CREATE USER, FILE, PROCESS, RELOAD, REPLICATION
CLIENT, REPLICATION SLAVE, SHOW DATABASES, SHUTDOWN, et SUPER .
Table Local, à la base de données en cours d’utilisation. Erreur, si aucune BdD active.
BdD.Table Global
Les privilèges qui peuvent être attribues au niveau d’une table sont : ALTER, CREATE
VIEW, CREATE, DELETE, DROP, GRANT OPTION, INDEX, INSERT, REFERENCES, SELECT, SHOW
VIEW, TRIGGER, et UPDATE.
Table Local, à la base de données en cours d’utilisation. Erreur, si aucune BdD active.
BdD.Table Global
Les privilèges qui peuvent être attribues au niveau d’une colonne sont :
INSERT, REFERENCES, SELECT, and UPDATE.
Le contrôle des accès aux bases de données par : Samir BOUCETTA Page |6
Les privilèges statiques qui peuvent être attribués/révoqués par GRANT and REVOKE
Privilège Meaning and Grantable Levels
ALL [PRIVILEGES] Grant all privileges at specified access level except GRANT OPTION and PROXY.
ALTER Enable use of ALTER TABLE. Levels: Global, database, table.
ALTER ROUTINE Enable stored routines to be altered or dropped. Levels: Global, database, routine.
CREATE Enable database and table creation. Levels: Global, database, table.
CREATE ROLE Enable role creation. Level: Global.
CREATE ROUTINE Enable stored routine creation. Levels: Global, database.
CREATE TABLESPACE Enable tablespaces and log file groups to be created, altered, or dropped. Level: Global.
CREATE TEMPORARY
TABLES Enable use of CREATE TEMPORARY TABLE. Levels: Global, database.
Enable use of CREATE USER, DROP USER, RENAME USER, and REVOKE ALL
CREATE USER PRIVILEGES. Level: Global.
CREATE VIEW Enable views to be created or altered. Levels: Global, database, table.
DELETE Enable use of DELETE. Level: Global, database, table.
DROP Enable databases, tables, and views to be dropped. Levels: Global, database, table.
DROP ROLE Enable roles to be dropped. Level: Global.
EVENT Enable use of events for the Event Scheduler. Levels: Global, database.
EXECUTE Enable the user to execute stored routines. Levels: Global, database, routine.
FILE Enable the user to cause the server to read or write files. Level: Global.
Enable privileges to be granted to or removed from other accounts. Levels: Global,
GRANT OPTION database, table, routine, proxy.
INDEX Enable indexes to be created or dropped. Levels: Global, database, table.
INSERT Enable use of INSERT. Levels: Global, database, table, column.
Enable use of LOCK TABLES on tables for which you have the SELECT privilege. Levels:
LOCK TABLES Global, database.
PROCESS Enable the user to see all processes with SHOW PROCESSLIST. Level: Global.
PROXY Enable user proxying. Level: From user to user.
REFERENCES Enable foreign key creation. Levels: Global, database, table, column.
RELOAD Enable use of FLUSH operations. Level: Global.
SELECT Enable use of SELECT. Levels: Global, database, table, column.
SHOW DATABASES Enable SHOW DATABASES to show all databases. Level: Global.
SHOW VIEW Enable use of SHOW CREATE VIEW. Levels: Global, database, table.
SHUTDOWN Enable use of mysqladmin shutdown. Level: Global.
TRIGGER Enable trigger operations. Levels: Global, database, table.
UPDATE Enable use of UPDATE. Levels: Global, database, table, column.
USAGE Synonym for “no privileges”
Le contrôle des accès aux bases de données par : Samir BOUCETTA Page |7