官网地址:MySQL :: MySQL 5.7 Reference Manual :: 13.7.1.4 GRANT Statement
欢迎关注留言,我是收集整理小能手,工具翻译,仅供参考,笔芯笔芯.
GRANT
    priv_type [(column_list)]
      [, priv_type [(column_list)]] ...
    ON [object_type] priv_level
    TO user [auth_option] [, user [auth_option]] ...
    [REQUIRE {NONE | tls_option [[AND] tls_option] ...}]
    [WITH {GRANT OPTION | resource_option} ...]
GRANT PROXY ON user
    TO user [, user] ...
    [WITH GRANT OPTION]
object_type: {
    TABLE
  | FUNCTION
  | PROCEDURE
}
priv_level: {
    *
  | *.*
  | db_name.*
  | db_name.tbl_name
  | tbl_name
  | db_name.routine_name
}
user:
    (see Section 6.2.4, “Specifying Account Names”)
auth_option: {
    IDENTIFIED BY 'auth_string'
  | IDENTIFIED WITH auth_plugin
  | IDENTIFIED WITH auth_plugin BY 'auth_string'
  | IDENTIFIED WITH auth_plugin AS 'auth_string'
  | IDENTIFIED BY PASSWORD 'auth_string'
}
tls_option: {
    SSL
  | X509
  | CIPHER 'cipher'
  | ISSUER 'issuer'
  | SUBJECT 'subject'
}
resource_option: {
  | MAX_QUERIES_PER_HOUR count
  | MAX_UPDATES_PER_HOUR count
  | MAX_CONNECTIONS_PER_HOUR count
  | MAX_USER_CONNECTIONS count
}…GRANT 语句授予mysql用户帐户特权。有几个方面GRANT 在下列专题下介绍的声明:
…GRANT 语句授予mysql用户帐户特权。
给予他们特权 GRANT ,你必须拥有 GRANT OPTION 你必须拥有你所授予的特权。(如果你有 UPDATE 资助表的特权mysql 系统数据库,您可以授予任何帐户任何特权.)当…… read_only 系统变量启用,GRANT 另外要求SUPER 特权。
…REVOKE 陈述与GRANT 并允许管理员删除帐户权限。看 第13.7.1.6节,"撤销声明" .
每个帐户名称使用的格式 第6.2.4节,"说明帐户名称" .例如:
GRANT ALL ON db1.* TO 'jeffrey'@'localhost';如果省略,帐户的主机名称部分默认为 '%' .
通常,数据库管理员首先使用 CREATE USER 创建帐户并定义其非特权特性,如密码、是否使用安全连接以及对访问服务器资源的限制,然后使用 GRANT 定义它的特权。 ALTER USER 可以用来改变现有账户的非特权特征。例如:
CREATE USER 'jeffrey'@'localhost' IDENTIFIED BY 'password';
GRANT ALL ON db1.* TO 'jeffrey'@'localhost';
GRANT SELECT ON db2.invoice TO 'jeffrey'@'localhost';
ALTER USER 'jeffrey'@'localhost' WITH MAX_QUERIES_PER_HOUR 90;例子如下:IDENTIFIED 条款。假设你用 CREATE USER 在建立账户的时间,以避免创建不安全的账户。
如果一个账户的名字 GRANT 已经没有声明了,GRANT 可根据下文讨论中所述的条件设立。 NO_AUTO_CREATE_USER sql模式。也可以使用 GRANT 指定非特权帐户特性,如它是否使用安全连接和对访问服务器资源的限制。
然而,使用GRANT 在mysql5.7中,对于创建帐户或定义非特权特性是不赞成的。相反,使用这些任务CREATE USER 或 ALTER USER .
来自 Mysql 程序, GRANT 回答: Query OK, 0 rows affected 一旦成功执行。为了确定操作产生的权限,请使用SHOW GRANTS .看 第13.7.5.21节,"显示补助金报表" .
在某些情况下, GRANT 可以记录在服务器日志或客户端的历史文件中,例如: ~/.mysql_history ,也就是说,任何人都可以阅读清楚的文本密码。有关服务器日志发生这种情况的信息以及如何控制它,请参见 第6.1.2.3节,"密码和日志记录" .有关客户端日志记录的类似信息,请参阅 Section 4.5.1.3, “mysql Client Logging” .
GRANT支持主机名称最多60个字符长。用户名最多可达32个字符。数据库、表、列和例程名称最多可达64个字符。
不要试图通过改变用户名的允许长度来改变mysql.user 系统表。这样做会导致不可预测的行为,甚至可能使用户无法登录到mysql服务器 .绝不改变表格的结构。mysql 系统数据库以任何方式进行,但通过下列程序除外: Section 2.10, “Upgrading MySQL” .
里面有几个物体GRANT 声明可以引用,但在许多情况下,引用是可选的:帐户、数据库、表、列和常规名称。例如,如果 user_name 或 host_name 帐户名中的值作为未引用的标识符是合法的,您不必引用它。但是,需要有引号来指定 user_name 包含特殊字符的字符串(例如- ),或 host_name 包含特殊字符或通配符的字符串% (例如,'test-user'@'%.com' )。分别引用用户名和主机名。
指定引用值:
-  引用数据库、表、列和例程名称作为标识符. 
-  引用用户名和主机名作为标识符或字符串. 
-  引用密码作为字符串。 
关于字串引用和标识引用指南,请参阅 第9.1.1节,"字符串文字" ,以及 第9.2节,"模式对象名称" .
…_ 和% 在指定数据库名称时,允许使用通配符。 GRANT 授予数据库级权限的语句( )。例如,这意味着 字符作为数据库名称的一部分,请使用 逃跑性格 在…中 语句,防止用户访问与通配符模式相匹配的额外数据库(例如, ). GRANT ... ON db_name

 
                   
                   
                   
                   最低0.47元/天 解锁文章
最低0.47元/天 解锁文章
                           
                       
       
           
                 
                 
                 
                 
                 
                
               
                 
                 
                 
                 
                
               
                 
                 扫一扫
扫一扫
                     
                     
              
             
                   982
					982
					
 被折叠的  条评论
		 为什么被折叠?
被折叠的  条评论
		 为什么被折叠?
		 
		  到【灌水乐园】发言
到【灌水乐园】发言                                
		 
		 
    
   
    
   
             
					 
					 
					


 
            