• MySQL自娱—10.DCL语言


    DCL(数据控制语言)
    主要是数据库管理员用来管理其他用户权限时使用的语句
    可以授予的权限包括以下几组:
    列权限:和表中的一个具体列相关
    表权限:和一个具体数据表中的所有数据相关
    数据库权限:和一个具体数据库中的所有数据表相关
    全局权限:和MySQL的所有数据库相关
    低级权限会被高级权限覆盖

    数据库管理员使用GRANT语句进行授权
    语法:GRANT 权限 ON 数据库对象 TO 用户名@用户地址 IDENTIFIED BY 用户口令
    注意语法中的用户名、用户地址、用户口令需要用引号括起来,并且口令不能为空
    例子:
    列权限:GRANT SELECT(id) ON test.test_table1 TO 'a'@'localhost' IDENTIFIED BY '123456';
    表权限:GRANT SELECT ON test.test_table1 TO 'b'@'localhost' IDENTIFIED BY '123456';
    数据库权限:GRANT SELECT ON test.* TO 'c'@'localhost' IDENTIFIED BY '123456';
    全局权限:GRANT SELECT ON . TO 'd'@'localhost' IDENTIFIED BY '123456';
    通过GRANT语句可以授予的权限
    包括:SELECT、INSERT、UPDATE、DELETE、CREATE、DROP、ALTER等
    如果要授予所有权限,可以使用 ALL 代表所有
    例子:GRANT ALL ON . TO 'user'@'localhost' IDENTIFIED BY '123456';
    查看当前用户权限:
    SHOW GRANTS
    SHOW GRANTS FOR CURRENT_USER()
    查看指定用户权限:
    SHOW GRANTS FOR 用户名@用户地址
    也可以使用USE命令切换到系统数据库information_schema
    SELECT * FROM user_privileges查看更为详细的用户权限
    数据库管理员使用REVOKE语句取消授权
    语法:REVOKE 权限 ON 数据库对象 FROM 用户名@用户地址
    注意需要根据用户对应权限进行取消
    例子:REVOKE ALL ON . FROM 'user'@'localhost';
    在数据库管理员授予或取消授予权限时,用户地址可以使用%表示所有
    例子:REVOKE ALL ON . FROM 'user'@'%';
    在数据库管理员授予或取消授予权限后,需要刷新系统权限表:FLUSH PRIVILEGES
    或者重新启动数据库服务:
    停止服务命令 net stop mysql
    启动服务命令 net start mysql
    数据库管理员可以使用DDL(数据定义语句)中的CREATE来创建用户
    语法:CREATE USER 用户名@用户地址 IDENTIFIED BY 用户口令
    例子:CREATE USER zhangsan@'192.168.1.100' IDENTIFIED BY '123456';
    如果要查看用户信息,需要使用USE命令切换到系统数据库mysql中
    SELECT * FROM user;
    需要注意的是,使用CREATE命令创建的用户默认没有任何权限,需要使用前面的GRANT
    命令授权
    数据库管理员可以使用DDL(数据定义语句)中的DROP来删除用户
    语法:DROP USER 用户名@用户地址
    例子:DROP USER zhangsan@'192.168.1.100';
    如果需要修改用户的密码,需要到系统数据库mysql中修改表user
    例子:UPDATE user SET password=password('123456') WHERE user='zhangsan';
    也可以直接在表user中删除用户
    例子:DELETE FROM user WHERE user='zhangsan';

    DCL(Data Control Language)
    数据控制语言,用来定义访问权限和安全级别。

    1.创建用户
    语法:
    CREATE USER 用户名@地址 IDENTIFIED BY '密码';
    例:
    create user testuser1@localhost identified by '111';
    1
    2
    3
    4
    2.给用户授权
    语法:
    GRANT 权限1, … , 权限n ON 数据库.* TO 用户名;
    例:
    grant create,alter,drop,insert,update,delete,select on test999.* to testuser1@localhost;
    1
    2
    3
    4
    3.撤销授权
    语法:
    REVOKE权限1, … , 权限n ON 数据库.* FORM 用户名;
    例:
    revoke create,alter,drop on test999.* to testuser1@localhost;
    1
    2
    3
    4
    4.查看用户权限
    语法:
    SHOW GRANTS FOR 用户名;
    例:
    show grants for testuser1@localhost;
    1
    2
    3
    4
    5.删除用户
    语法:
    DROP USER 用户名;
    例:
    drop user testuser1@localhost;

  • 相关阅读:
    关于微信三点定位法
    PHP 取302跳转后真实 URL 的两种方法
    前端布局神器display:flex
    JS实现document.ready
    为什么无返回值的链表的插入操作头结点一定要用指向指针的指针
    常量字符串和指针
    C语言中指针数组和数组指针的区别
    二维数组简介与使用
    访问者模式
    解释器模式
  • 原文地址:https://www.cnblogs.com/FGdeHB/p/15778489.html
Copyright © 2020-2023  润新知