Data Control Language (Data Control Language) est une instruction utilisée pour définir ou modifier les autorisations des utilisateurs ou des rôles de base de données. Toutes les bases de données d'un serveur donné. Ces autorisations sont stockées dans la table mysql.user
La hiérarchie de la base de données s'applique à toutes les cibles d'une base de données donnée. Ces autorisations sont stockées dans les tables mysql.db et mysql.host Le niveau de la table s'applique à toutes les colonnes d'une table donnée. Ces autorisations sont stockées dans la table mysql.tables_priv. Le niveau de la colonne s'applique à une seule colonne d'une table donnée. niveau de sous-programmeLes autorisations CREATE ROUTINE, ALTER ROUTINE, EXECUTE et GRANT dans la table mysql.columns_priv s'appliquent aux sous-programmes stockés. Ces autorisations peuvent être accordées au niveau global et au niveau de la base de données Autorisations MySQL Systèmedbtable_priv. | |
---|---|
. Les informations d'autorisation de MySQL sont principalement stockées dans les tableaux suivants. Lorsqu'un utilisateur se connecte à la base de données, MySQL vérifiera les autorisations de l'utilisateur en fonction de ces tableaux, du compte d'enregistrement, du mot de passe et des informations d'autorisation globales | |
enregistrements. autorisations liées à la base de données |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
|
procs_priv | |
---|---|
Le compte utilisateur MySQL se compose de deux parties : nom d'utilisateur et nom d'hôte, c'est-à-dire nom d'utilisateur@nom d'hôte, le nom d'hôte peut être une adresse IP ou un nom de machine, le nom d'hôte % signifie permettre aux hôtes n'importe où de se connecter à distance à la base de données MySQL. |
Format : |
Exemple : | Effet : |
Supprimer l'utilisateur | Format : |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
|
ALTER USER 'Username'@'Hostname' IDENTIFIÉ PAR 'Nouveau mot de passe';
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
|
MySQL utilisant GRANT
et REVOKE
pour autoriser et révoquer l'autorisation. Les autorisations sont divisées en 3 catégories, catégorie de données, catégorie de structure et catégorie de gestion %
表示允许任何地方的主机远程登录 MySQL 数据库.
格式:
CREATE USER '用户名' [@'主机名'][IDENTIFIED BY '密码'];
例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
|
效果:
格式:
DROP USER '用户名‘[@'主机名']
例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
|
格式:
ALTER USER '用户名'@'主机名' IDENTIFIED BY '新密码';
例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
|
MySQL 使用GRANT
和REVOKE
格式:
SHOW GRANTS FOR '用户名'[@'主机名']
例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
|
输出结果:
数据库链接成功
SQL 语句执行成功!
Array
(
[Grants for root@localhost] => GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE, CREATE ROLE, DROP ROLE ON *.* TO `root`@`localhost` WITH GRANT OPTION
)
Array
(
[Grants for root@localhost] => GRANT APPLICATION_PASSWORD_ADMIN,AUDIT_ADMIN,AUTHENTICATION_POLICY_ADMIN,BACKUP_ADMIN,BINLOG_ADMIN,BINLOG_ENCRYPTION_ADMIN,CLONE_ADMIN,CONNECTION_ADMIN,ENCRYPTION_KEY_ADMIN,FLUSH_OPTIMIZER_COSTS,FLUSH_STATUS,FLUSH_TABLES,FLUSH_USER_RESOURCES,GROUP_REPLICATION_ADMIN,GROUP_REPLICATION_STREAM,INNODB_REDO_LOG_ARCHIVE,INNODB_REDO_LOG_ENABLE,PASSWORDLESS_USER_ADMIN,PERSIST_RO_VARIABLES_ADMIN,REPLICATION_APPLIER,REPLICATION_SLAVE_ADMIN,RESOURCE_GROUP_ADMIN,RESOURCE_GROUP_USER,ROLE_ADMIN,SERVICE_CONNECTION_ADMIN,SESSION_VARIABLES_ADMIN,SET_USER_ID,SHOW_ROUTINE,SYSTEM_USER,SYSTEM_VARIABLES_ADMIN,TABLE_ENCRYPTION_ADMIN,XA_RECOVER_ADMIN ON *.* TO `root`@`localhost` WITH GRANT OPTION
)
Array
(
[Grants for root@localhost] => GRANT PROXY ON ``@`` TO `root`@`localhost` WITH GRANT OPTION
)
格式:
GRANT ALL PRIVILEGES ON 数据库名.表名 TO '用户名'[@'主机名']
例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
|
REVOKE ALL PRIVILEGES ON 数据库名.表名 from '用户名'[@'主机名']
例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
|
格式:
FLUSH PRIVILEGES
禁止 root 远程登录.
禁止 root 远程登录的原因:
root 是 MySQL 数据库的超级管理员. 几乎拥有所有权限, 一旦泄露后果非常严重
root 是 MySQL 数据库的默认用户. 如果不禁止远程登录, 则某些人可以针对 root 用户暴力破解密码
INSERT UPDATE DELETE FILE | ALTER INDEX DROP CREATE TABLES SHOW VUE CRÉER UNE ROUTINE ALTER LA ROUTINE EXECUTER CRÉER UNE VUE ÉVÉNEMENT TRIGGER | GRANT SUPER PROCESS RELOAD ARRÊT AFFICHER LES BASES DE DONNÉES VERROUILLER LES TABLES RÉFÉRENCES REPUCATION CUENT REPUCATION SLAVE CREATE USER |
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!