简单认识MySQL之数据控制语言DCL

  

下面跟着笔者一起来了解下MySQL之数据控制语言DCL,相信大家看完肯定会受益匪浅,文字在精不在多,希望MySQL之数据控制语言DCL这篇短内容是你想要的。

我们使用DDL的“创建USER"语句创建用户,新的SQL用户不允许访问属于其他SQL用户的表,也不能立即创建自己的表,它必须被授权。可以授予的权限包括以下几组:

1。列权限:和表中的一个具体列相关

2。表权限:和一个具体数据表中所有数据相关

3。数据库权限:和一个具体数据库中所有数据表相关

4。用户权限:和MySQL所有的数据库相关

可以使用显示赠款命令查看当前用户的权限。

 SHOW 补助金;/显示当前用户权限
  SHOW  GRANTS  FOR  & # 39; pinnsvin& # 39; @ # 39; localhost # 39;;/显示指定用户权限
  SHOW  GRANTS  FOR  CURRENT_USER();/显示当前用户权限

1。格兰特授权语句

语法:

简单认识MySQL之数据控制语言DCL

格兰特
  ,,,priv_type  [(column_list)]
  ,,,,,(,priv_type  [(column_list)]],…,,,,, (object_type), priv_level ,,,用user_specification  [, user_specification),,,,,, (REQUIRE  {NONE  |, ssl_option [[和],ssl_option],…}),,,, (WITH  {GRANT  OPTION  |, resource_option},…]/代理GRANT  PROXY 提醒user_specification ,,,用user_specification  [, user_specification),,,,,, (WITH  GRANT 选项)/联级授权,选了此项,该用户有权将自己的权限授予自己创建的子用户/授权目标对象类型
  object_type:{,,,表
  |才能,函数
  |才能,过程}/授权目标
  priv_level: {,,, *
  ,| *。*
  |才能db_name。*
  |才能,db_name.tbl_name , |, tbl_name , | db_name.routine_name
  }/授权用户
  user_specification:,,,, user  [], auth_option  auth_option:, {
  ,,,IDENTIFIED  BY  & # 39; auth_string& # 39;,
  |才能,IDENTIFIED  BY  PASSWORD  & # 39; hash_string& # 39;
  |才能,IDENTIFIED  WITH  auth_plugin , |, IDENTIFIED  WITH  auth_plugin  AS  & # 39; hash_string& # 39;}/SSL设置
  ssl_option: {
  ,,,SSL , |, X509 , |, CIPHER  & # 39;密码# 39;
  |才能,ISSUER  & # 39;发行人# 39;
  |才能,SUBJECT  & # 39;主题# 39;}
  
  resource_option:{|才能,MAX_QUERIES_PER_HOUR  count /允许用户每小时执行的查询语句数量
  |才能,MAX_UPDATES_PER_HOUR  count /允许用户每小时执行更新语句数量
  |才能,MAX_CONNECTIONS_PER_HOUR  count /允许用户每小时连接的次数
  |才能,MAX_USER_CONNECTIONS  count /允许用户同时连接云服务器的数量}

简单认识MySQL之数据控制语言DCL

实例:

简单认识MySQL之数据控制语言DCL

/先要创建一个用户,创建了一个名为杰弗里,登录主机为主机,密码为mypass的用户CREATE  USER  & # 39; jeffrey # 39; @ # 39; localhost # 39;, IDENTIFIED  BY  & # 39; mypass& # 39;;/授予了用户jeffrey@localhost对数据库db1下所有数据表所有操作权限GRANT  ALL 提醒db1。*,用& # 39;jeffrey # 39; @ # 39; localhost # 39;;/授予了用户& # 39;jeffrey # 39; @ # 39; localhost # 39;对数据库db2下发票数据表的查询权限GRANT  SELECT 提醒db2.invoice 用& # 39;jeffrey # 39; @ # 39; localhost # 39;;/使用意指无权限,用户jeffrey@localhost 在一个小时内只有90次查询权限GRANT  USAGE 提醒*。*,用& # 39;jeffrey # 39; @ # 39; localhost # 39;, WITH  MAX_QUERIES_PER_HOUR  90; 

简单认识MySQL之数据控制语言DCL

2。撤销撤销授权语句

语法:

简单认识MySQL之数据控制语言DCL

<>之前撤销   ,,,priv_type  [(column_list)]   ,,,,,(,priv_type  [(column_list)]],…,,,,, (object_type), priv_level ,,,得到user [,,用户],……REVOKE  ALL 特权,GRANT 选项   ,,,,得到user [用户],,…/授权代理REVOKE  PROXY 提醒用户   ,,,,得到user [用户],,…

简单认识MySQL之数据控制语言DCL

简单认识MySQL之数据控制语言DCL