MySQL操作基础之DCL语句,用户权限管理
DCL(DataControlLanguage)语句:数据控制语句,用于控制不同数据段直接的许可和访问级别的语句。这些语句定义了数据库、表、字段、用户的访问权限和安全级别。主要的语句关键字包括grant、revoke等。
DCL语句主要是DBA用来管理系统中的对象权限时所使用的,一般的开发人员很少使用。1:创建用户CREATEUSER
示例:创建只能本地登录(localhost)的账号zhangsan,密码为mypassCREATEUSERzhangsanlocalhostIDENTIFIEDBYmypass;
2:GRANT给用户授权
注:mysql8。0以前的版本可以使用grant在授权的时候隐式的创建用户,8。0以后已经不支持,所以必须先创建用户,然后再授权
创建用户并授权,语法格式(8。0以前版本):GRANT〔权限〕ON〔数据库。数据表〕TO〔用户名〕hostIDENTIFIEDBY〔‘密码’〕〔WITHGRANTOPTION(可选参数)〕;〔权限〕:select,insert,update,delete,drop,create等,all(所有操作)〔数据库。数据表〕:testDatebase。(testDatebase中所有表),testDatebase。myTable(testDatebase中的myTable表),(所有数据库)host:localhost(本地登录),12。32。123。54(仅限此IP可登录),(任何地方都可以登录)withgranoption:表示该用户可以给其它用户赋予权限,但不可能超过该用户已有的权限。比如a用户有select,insert权限,也可给其它用户赋权,但它不可能给其它用户赋delete权限,除了select,insert以外的都不能。
示例:
8。0以前版本创建用户授权一步到位。GRANTallONtestDatebase。myTableTOzhangsanlocalhostIDENTIFIEDBYmypass;创建用户zhangsan,密码mypass,对于数据库testDatebase的myTable表,授予所有权限(all),仅限本地登录
8。0以后的版本,创建用户后,再进行授权操作。grantallprivilegesonwordpress。touserwordpress;userwordpress用户在wordpress所有表中有权限,可在任何地方登录使用。grantselectontestDatabase。myTabletozhangsanlocalhost;zhangsan用户在testDatabase的myTable表中只有select权限,仅在本地登录。3:REVOKE给用户撤销权限
格式:REVOKE〔权限〕ON〔数据库。数据表〕FROM〔用户名〕host;
示例:revokeallprivilegesontestDatabase。fromzhangsan;撤销zhangsan在testDatabase数据库的所有权限revokeinsertontestDatabase。fromzhangsanlocalhost;撤销zhangsan在testDatabase数据库的insert权限4:查看权限命令
有两种方式查看。
第一种方式:showgrantsforuserwordpress;查看用户userwordpress的权限mysqlshowgrantsforuserwordpress;GrantsforuserwordpressGRANTUSAGEON。TOuserwordpressGRANTALLPRIVILEGESONwordpress。TOuserwordpress2rowsinsetTime:0。007s
第二种方式:selectfrommysql。userwhereuseruserwordpressG;
g相当于’;’
G使每个字段打印到单独的行,也有’;’的作用
只能查出哪个数据库的哪张表的权限,如查userwordpress在mysql数据库的user表的权限,显示都是N(no),没有权限,如果查root用户就都是Y(yes)选择了。5:修改用户密码信息和host
修改密码的两种方式:
1)AlteruserAlterusertest1localhostidentifiedby新密码;
2)setpasswordsetpasswordforzhangsanlocalhost1234567
3)8。0以前版本grant,8。0以后版本无法使用grantallprivilegesontestDatabase。tozhangsanlocalhostidentifiedbynewpassword;
修改host,访问IP:updateusersetHostwhereuserzhangsan;修改host为,任何IP都可访问updateusersetHost123。123。123。123whereuserzhangsan;修改host为,IP:123。123。123。123可访问6:删除用户
dropuserzhangsan删除zhangsan