当成功创建用户账户后,还不能执行任何操作,需要为该用户分配适当的访问权限。可以使用 SHOW GRANT FOR 语句来查询用户的权限。

注意:新创建的用户只有登录 MySQL 服务器的权限,没有任何其他权限,不能进行其他操作。

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)

用于指定权限的级别。可以授予的权限有如下几组:

列权限,和表中的一个具体列相关。例如,可以使用 UPDATE 语句更新表 students 中 student_name 列的值的权限。

表权限,和一个具体表中的所有数据相关。例如,可以使用 SELECT 语句查询表 students 的所有数据的权限。

数据库权限,和一个具体的数据库中的所有表相关。例如,可以在已有的数据库 mytest 中创建新表的权限。

用户权限,和 MySQL 中所有的数据库相关。例如,可以删除已有的数据库或者创建一个新的数据库的权限。

对应地,在 GRANT 语句中可用于指定权限级别的值有以下几类格式:

*:表示当前数据库中的所有表。

*.*:表示所有数据库中的所有表。

db_name.*:表示某个数据库中的所有表,db_name 指定数据库名。

db_name.tbl_name:表示某个数据库中的某个表或视图,db_name 指定数据库名,tbl_name 指定表名或视图名。

tbl_name:表示某个表或视图,tbl_name 指定表名或视图名。

db_name.routine_name:表示某个数据库中的某个存储过程或函数,routine_name 指定存储过程名或函数名。

TO 子句:用来设定用户口令,以及指定被赋予权限的用户 user。若在 TO 子句中给系统中存在的用户指定口令,则新密码会将原密码覆盖;如果权限被授予给一个不存在的用户,MySQL 会自动执行一条 CREATE USER 语句来创建这个用户,但同时必须为该用户指定口令。

GRANT语句中的的使用说明如下:

1) 授予数据库权限时,可以指定为以下值:

SELECT:表示授予用户可以使用 SELECT 语句访问特定数据库中所有表和视图的权限。

INSERT:表示授予用户可以使用 INSERT 语句向特定数据库中所有表添加数据行的权限。

DELETE:表示授予用户可以使用 DELETE 语句删除特定数据库中所有表的数据行的权限。

UPDATE:表示授予用户可以使用 UPDATE 语句更新特定数据库中所有数据表的值的权限。

REFERENCES:表示授予用户可以创建指向特定的数据库中的表外键的权限。

CREATE:表示授权用户可以使用 CREATE TABLE 语句在特定数据库中创建新表的权限。

ALTER:表示授予用户可以使用 ALTER TABLE 语句修改特定数据库中所有数据表的权限。

SHOW VIEW:表示授予用户可以查看特定数据库中已有视图的视图定义的权限。

CREATE ROUTINE:表示授予用户可以为特定的数据库创建存储过程和存储函数的权限。

ALTER ROUTINE:表示授予用户可以更新和删除数据库中已有的存储过程和存储函数的权限。

INDEX:表示授予用户可以在特定数据库中的所有数据表上定义和删除索引的权限。

DROP:表示授予用户可以删除特定数据库中所有表和视图的权限。

CREATE TEMPORARY TABLES:表示授予用户可以在特定数据库中创建临时表的权限。

CREATE VIEW:表示授予用户可以在特定数据库中创建新的视图的权限。

EXECUTE ROUTINE:表示授予用户可以调用特定数据库的存储过程和存储函数的权限。

LOCK TABLES:表示授予用户可以锁定特定数据库的已有数据表的权限。

ALL 或 ALL PRIVILEGES:表示以上所有权限。

2) 授予表权限时,可以指定为以下值:

SELECT:授予用户可以使用 SELECT 语句进行访问特定表的权限。

INSERT:授予用户可以使用 INSERT 语句向一个特定表中添加数据行的权限。

DELETE:授予用户可以使用 DELETE 语句从一个特定表中删除数据行的权限。

DROP:授予用户可以删除数据表的权限。

UPDATE:授予用户可以使用 UPDATE 语句更新特定数据表的权限。

ALTER:授予用户可以使用 ALTER TABLE 语句修改数据表的权限。

REFERENCES:授予用户可以创建一个外键来参照特定数据表的权限。

CREATE:授予用户可以使用特定的名字创建一个数据表的权限。

INDEX:授予用户可以在表上定义索引的权限。

ALL 或 ALL PRIVILEGES:所有的权限名。

3) 授予列权限时,的值只能指定为 SELECT、INSERT 和 UPDATE,同时权限的后面需要加上列名列表 column-list。

4) 最有效率的权限是用户权限。

授予用户权限时,除了可以指定为授予数据库权限时的所有值之外,还可以是下面这些值:

CREATE USER:表示授予用户可以创建和删除新用户的权限。

SHOW DATABASES:表示授予用户可以使用 SHOW DATABASES 语句查看所有已有的数据库的定义的权限。

【实例】使用 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)

< 上一页MySQL删除用户

MySQL删除用户权限下一页 >

mysql授权用户主机_MySQL用户授权(GRANT)相关推荐

  1. mysql 移除权限_MySQL用户授权及删除权限

    ▼ CREATE DATABASE IF NOT EXISTS `wordpress`; GRANT ALL PRIVILEGES ON wordpress.* TO wordpress@localh ...

  2. mysql取消权限设置_mysql用户授权与权限撤销

    mysql用户授权与权限撤销 实验练习: 1.允许root从192.168.4.0/24网段访问,对所有库/表有完全控制权限,需要验证的密码为xujunxian. 2.建立一个管理账号dba007,对 ...

  3. mysql revoke 列权限_MYSQL用户权限管理(Grant,Revoke)

    MySQL可以为不同的用户分配严格的.复杂的权限.这些操作大多都可以用SQL指令Grant(分配权限)和Revoke(回收权限)来实现. Grant可以把指定的权限分配给特定的用户,如果这个用户不存在 ...

  4. mysql 用户管理系统_mysql 用户管理

    MySQL账户管理 在我们之前登录MySQL的时候我们都是直接使用的root用户,root用户属于数据库系统中的超级管理员,有权限对mysql进行任何想要做的操作. 如果在生产环境下操作数据库时也是全 ...

  5. mysql.sys用户权限_MySQL用户及权限小结

    备注:测试数据库版本为MySQL 8.0 这个blog我们来聊聊MySQL用户及权限 一.MySQL用户和权限介绍 MySQL权限系统通过下面两个阶段进行认证: 1.对连接的用户进行身份认证,合法的用 ...

  6. mysql 用户管理_mysql 用户管理及数据权限问题总结

    1.远程登录mysql mysql -h ip -u root -p 密码 2.创建用户 格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码 ...

  7. mysql vip的作用_MySQL用户与权限的管理

    用户连接到MySQL,可以做各种查询,这都是MySQL用户与权限功能在背后维持着操作. 用户与数据库服务器交互数据,分为两个阶段: (1)你有没有权连接上来 (2)你有没有权执行本操作 1.你有没有权 ...

  8. mysql删除密码代码_mysql 用户新建、受权、删除、密码修改

    mysql 用户新建.授权.删除.密码修改 首先要声明一下:一般情况下,修改MySQL密码,授权,是需要有mysql里的root权限的. 注:本操作是在WIN命令提示符下,phpMyAdmin同样适用 ...

  9. mysql的账户之间_MySQL用户管理

    MySQL服务器通过权限表来空值用户对数据库的访问,权限表存放在mysql数据库中,由mysql_install_db 脚本初始化,存储账户权限信息表主要有:user,db,host,tables_p ...

最新文章

  1. 【5】python核心编程 第八章-条件和循环
  2. “cannot resolve symbol R” in Android Studio
  3. 页面导航的基础与深入
  4. Intel Realsense 使用D435时需安装的几款官方软件
  5. 解决删除镜像时image is referenced in multiple repositories
  6. VRRP和HSRP在企业网中的应用
  7. c语言指针交换字符串组,c语言 指针交换两个字符串
  8. java bean jsonobject_利用JSONObject将json 字符串转换为java bean对象
  9. linux基础期末考,Linux基础期末考试试题.pdf
  10. android拆轮子系列之一步一步教你写微信抢红包插件
  11. linux取证——基础取证命令集合
  12. Kubernetes(K8s)容器设计模式实践案例 单节点多容器模式
  13. java中的g1_G1GC 概念与性能调优
  14. 元旦贺卡html,元旦新年贺卡怎么做
  15. 李晨光:向着兴趣一路前行
  16. c++入门中,一道题展开的东西……继承与派生,多态和重载
  17. matlab中的模糊控制工具箱,4步学会使用matlab模糊控制工具箱
  18. 如何鉴别电脑电源是否虚标(实际输出瓦数)
  19. 无公网服务器(ip)做内网穿透
  20. 企业里Win10 开启BitLocker锁定磁盘,如何备份系统,当系统出现问题又如何恢复,快速恢复又兼顾系统安全

热门文章

  1. 熟悉linux的安全与优化
  2. Dreamweaver 8和visual studio 2003一起开发是很爽的事
  3. Ansible自动化运维企业实际应用场景分析
  4. 【收藏】Kubernetes学习之路(二十二)之Pod资源调度
  5. 解决docker报错: ---> [Warning] IPv4 forwarding is disabled. Networking will not work.
  6. Scala模拟Spark分布式计算流程示例代码
  7. Java IO模型:BIO NIO AIO及netty介绍
  8. 【代码】CyclicBarrier栅栏使用示例
  9. Python Django 查询单个对象API
  10. MySQL数据库事务的特性