MySQL用户授权(GRANT)
发布时间:2020-12-12 02:22:05 所属栏目:MySql教程 来源:网络整理
导读:当成功创建用户账户后,还不能执行任何操作,需要为该用户分配适当的访问权限。可以使用 SHOW GRANT FOR 语句来查询用户的权限。 注意:新创建的用户只有登录 MySQL 服务器的权限,没有任何其他权限,不能进行其他操作。 USAGE ON*.* 表示该用户对任何数据库
当成功创建用户账户后,还不能执行任何操作,需要为该用户分配适当的访问权限。可以使用 SHOW GRANT FOR 语句来查询用户的权限。
USAGE ON*.* 表示该用户对任何数据库和任何表都没有权限。 授予用户权限对于新建的 MySQL 用户,必须给它授权,可以用 GRANT 语句来实现对新建用户的授权。语法格式: GRANT <权限类型> [ ( <列名> ) ] [,<权限类型> [ ( <列名> ) ] ] ON <对象> <权限级别> TO <用户> 其中<用户>的格式: <用户名> [ IDENTIFIED ] BY [ PASSWORD ] <口令> [ WITH GRANT OPTION] | MAX_QUERIES_PER_HOUR <次数> | MAX_UPDATES_PER_HOUR <次数> | MAX_CONNECTIONS_PER_HOUR <次数> | MAX_USER_CONNECTIONS <次数>语法说明如下: 1) <列名>可选项。用于指定权限要授予给表中哪些具体的列。2) ON 子句用于指定权限授予的对象和级别,如在 ON 关键字后面给出要授予权限的数据库名或表名等。3) <权限级别>用于指定权限的级别。可以授予的权限有如下几组:
对应地,在 GRANT 语句中可用于指定权限级别的值有以下几类格式:
GRANT语句中的 <权限类型> 的使用说明如下:
1) 授予数据库权限时,<权限类型>可以指定为以下值:
2) 授予表权限时,<权限类型>可以指定为以下值:
3) 授予列权限时,<权限类型>的值只能指定为 SELECT、INSERT 和 UPDATE,同时权限的后面需要加上列名列表 column-list。4) 最有效率的权限是用户权限。授予用户权限时,<权限类型>除了可以指定为授予数据库权限时的所有值之外,还可以是下面这些值:
【实例】使用 GRANT 语句创建一个新的用户 testUser,密码为 testPwd。用户 testUser 对所有的数据有查询、插入权限,并授予 GRANT 权限。输入的 SQL 语句和执行过程如下所示。 mysql> GRANT SELECT,INSERT ON *.* -> TO 'testUser'@'localhost' -> IDENTIFIED BY 'testPwd' -> WITH GRANT OPTION; Query OK,0 rows affected,1 warning (0.05 sec)使用 SELECT 语句查询用户 testUser 的权限,如下所示。 mysql> SELECT Host,User,Select_priv,Grant_priv -> FROM mysql.user -> WHERE User='testUser'; +-----------+----------+-------------+------------+ | Host | User | Select_priv | Grant_priv | +-----------+----------+-------------+------------+ | localhost | testUser | Y | Y | +-----------+----------+-------------+------------+ 1 row in set (0.01 sec) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |