MySQL讲义第 55 讲——用户权限管理之创建和删除用户
MySQL讲义第 55 讲——用户权限管理之创建和删除用户
文章目录
- MySQL讲义第 55 讲——用户权限管理之创建和删除用户
- 一、创建用户
- 1、使用 create user 命令创建用户
- 2、使用 grant 命令创建用户
- 3、使用 insert 语句向 user 表中插入记录
- 二、查看用户权限信息
- 1、查看用户及全局权限
- 2、查看某个用户的权限
- 3、查看某个用户的非权限信息
- 三、删除用户
可以使用 create user 命令创建用户,此时创建的用户只具备登录权限,登录后只能执行一些不需要权限的操作。也可以使用 grant 命令创建用户同时授予相应的操作权限。也可以直接在 user 表中插入用户信息。
一、创建用户
1、使用 create user 命令创建用户
可以使用 CREATE USER 语句来创建 MySQL 用户并设置口令。语法格式如下:
CREATE USER 'username'@'host' IDENTIFIED BY 'password';说明:
(1)用户名由两部分构成,格式为 'user_name'@'host_name'。其中 user_name 是用户名,host_name 为主机名,即用户连接 MySQL 时所在主机的名字,host_name 可以是主机名或者 ipv4/ipv6 的地址。 Localhost 代表本机, 127.0.0.1代表 ipv4 本机地址, ::1 代表ipv6的本机地址。host_name 允许使用 % 和 _ 作为通配符,如 '%.mysql.com' 代表来自 mysql.com 这个域名下的所有主机,'192.168.1.%' 代表所有来自 '192.168.1' 网段的主机。
(2)IDENTIFIED BY:用于指定用户账号对应的口令,若该用户账号无口令,则可省略此子句。
主机名举例:
User 值 | Host 值 | 允许的连接 |
---|---|---|
‘fred’ | ‘h1.example.net’ | 允许 fred 用户使用域名 h1.example.net 连接 |
‘’ | ‘h1.example.net’ | 允许任何用户使用域名 h1.example.net 连接 |
‘fred’ | ‘%’ | 允许 fred 用户使用任何主机连接 |
‘’ | ‘%’ | 允许任何用户使用任何主机连接 |
‘fred’ | ‘%.example.net’ | 允许 fred 用户使用 example.net 域中的任何主机连接 |
‘fred’ | ‘198.51.100.177’ | 允许 fred 用户使用 IP 地址为 198.51.100.177 的主机连接 |
‘fred’ | ‘198.51.100.%’ | 允许 fred 用户使用 198.51.100 子网中的任何主机连接 |
‘fred’ | ‘198.51.100.0/255.255.255.0’ | 允许 fred 用户使用 198.51.100 子网中的任何主机连接 |
使用 CREATE USER 语句的注意事项:
(1)如果使用 CREATE USER 语句时没有为用户指定口令,那么 MySQL 允许该用户可以不使用口令登录系统。
(2)使用 CREATE USER 语句必须拥有 MySQL 中 MySQL 数据库的 INSERT 权限或全局 CREATE USER 权限。
(3)使用 CREATE USER 语句创建一个用户账号后,会在系统自身的 MySQL 数据库的 user 表中添加一条新记录。若创建的账户已经存在,则语句执行时会出现错误。
(4)新创建的用户拥有的权限很少。可以登录 MySQL,只允许进行不需要权限的操作,如使用 SHOW 语句查询所有存储引擎和字符集的列表等。
(5)如果两个用户具有相同的用户名和不同的主机名,MySQL 会将他们视为不同的用户,并允许为这两个用户分配不同的权限集合。
举例:
mysql> CREATE USER 'u1'@'localhost' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.00 sec)mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
2、使用 grant 命令创建用户
可以使用 GRANT 命令创建用户同时为用户授予相应的权限。语法格式如下:
GRANT 权限列表 ON database_name.table_name TO 'user_name'@'host_name'
IDENTIFIED BY 'password' WITH GRANT OPTION;说明:
(1)权限列表:授予新建用户的权限列表。
(2)ON:指定用户可以访问的数据库、表、列信息。
(3)'user_name'@'host_name':指定用户名和登录主机。
(4)IDENTIFIED BY:设置用户的登录密码。
(5)WITH GRANT OPTION:设置该用户能否把自己拥有的权限授予其他用户。
举例:
--### 为 u2 用户授权时不使用 WITH GRANT OPTION,则 u2 不能将自己所拥有的权限授予其他用户
mysql> GRANT SELECT ON *.* TO 'u2'@'localhost' IDENTIFIED BY '123456';
Query OK, 0 rows affected, 1 warning (0.00 sec)
--### 为 u3 用户授权时使用 WITH GRANT OPTION,则 u3 可以将自己所拥有的权限授予其他用户
mysql> GRANT SELECT ON *.* TO 'u3'@'localhost' IDENTIFIED BY '123456' WITH GRANT OPTION;
Query OK, 0 rows affected, 1 warning (0.00 sec)
登录测试:
(1)使用 u2 账户登录
[root@oracle-rac2 ~]# mysql -uu2 -p123456;
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 26
Server version: 5.7.31 MySQL Community Server (GPL)Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> grant select on hist.* to 'user03'@'localhost';
ERROR 1044 (42000): Access denied for user 'u2'@'localhost' to database 'hist'
(2)使用 u3 账户登录
[root@oracle-rac2 ~]# mysql -uu3 -p123456;
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 25
Server version: 5.7.31 MySQL Community Server (GPL)Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> grant select on hist.* to 'user04'@'localhost';
Query OK, 0 rows affected (0.00 sec)
3、使用 insert 语句向 user 表中插入记录
可以使用 INSERT 命令直接向 mysql.user 表插入用户信息,例如:
INSERT INTO mysql.user(HOST,USER,AUTHENTICATION_STRING,ssl_cipher,x509_issuer,x509_subject)
VALUES('localhost','wang',PASSWORD('123456'),'','','');
Query OK, 1 row affected, 1 warning (0.00 sec)mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
使用 wang 用户登录MySQL:
[root@oracle-rac2 ~]# mysql -uwang -p123456;
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 28
Server version: 5.7.31 MySQL Community Server (GPL)Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
+--------------------+
1 row in set (0.00 sec)
二、查看用户权限信息
1、查看用户及全局权限
直接查询 mysql.user 表即可。例如:
SELECT user,host,authentication_string
FROM mysql.user;
+---------------+--------------+-------------------------------------------+
| user | host | authentication_string |
+---------------+--------------+-------------------------------------------+
| root | localhost | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| mysql.session | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| mysql.sys | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| wgx | 192.168.1.20 | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| zhang | localhost | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| user01 | localhost | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| user02 | localhost | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| user03 | localhost | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| user04 | localhost | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| u1 | localhost | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| u2 | localhost | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| u3 | localhost | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| wang | localhost | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+---------------+--------------+-------------------------------------------+
13 rows in set (0.01 sec)SELECT *
FROM mysql.user
WHERE user = 'user01' AND host = 'localhost'\G
*************************** 1. row ***************************Host: localhostUser: user01Select_priv: YInsert_priv: YUpdate_priv: YDelete_priv: YCreate_priv: YDrop_priv: YReload_priv: YShutdown_priv: YProcess_priv: YFile_priv: YGrant_priv: NReferences_priv: YIndex_priv: YAlter_priv: YShow_db_priv: YSuper_priv: YCreate_tmp_table_priv: YLock_tables_priv: YExecute_priv: YRepl_slave_priv: YRepl_client_priv: YCreate_view_priv: YShow_view_priv: YCreate_routine_priv: YAlter_routine_priv: YCreate_user_priv: YEvent_priv: YTrigger_priv: Y
Create_tablespace_priv: Yssl_type: ssl_cipher: x509_issuer: x509_subject: max_questions: 0max_updates: 0max_connections: 0max_user_connections: 0plugin: mysql_native_passwordauthentication_string: *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9password_expired: Npassword_last_changed: 2020-12-06 14:18:38password_lifetime: NULLaccount_locked: N
1 row in set (0.00 sec)
2、查看某个用户的权限
使用 show grant 命令可以查看某个用户的权限,例如:
mysql> SHOW GRANTS FOR 'user04'@'localhost';
+---------------------------------------------------------------------+
| Grants for user04@localhost |
+---------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'user04'@'localhost' |
| GRANT SELECT ON `hist`.* TO 'user04'@'localhost' |
| GRANT SELECT (e_name, e_id) ON `hist`.`emp` TO 'user04'@'localhost' |
+---------------------------------------------------------------------+
3 rows in set (0.00 sec)
3、查看某个用户的非权限信息
使用 show create user 命令可以查看某个用户的其他信息,例如:
mysql> SHOW CREATE USER 'user04'@'localhost'\G
*************************** 1. row ***************************
CREATE USER for user04@localhost: CREATE USER 'user04'@'localhost' IDENTIFIED WITH 'mysql_native_password' AS '*6BB4837EB74329105EE4568DDA7DC67ED
2CA2AD9' REQUIRE NONE PASSWORD EXPIRE DEFAULT ACCOUNT UNLOCK
1 row in set (0.00 sec)
三、删除用户
可以使用 drop user 命令删除用户,例如:
SELECT host,user
FROM mysql.user
WHERE user = 'u3' and host = 'localhost';
+-----------+------+
| host | user |
+-----------+------+
| localhost | u3 |
+-----------+------+
1 row in set (0.01 sec)mysql> DROP USER 'u3'@'localhost';
Query OK, 0 rows affected (0.00 sec)mysql> SELECT host,user-> FROM mysql.user-> WHERE user = 'u3' and host = 'localhost';
Empty set (0.00 sec)
MySQL讲义第 55 讲——用户权限管理之创建和删除用户相关推荐
- MySQL(入门篇18)SQLyog 的用户权限管理 ; SQL语句的用户权限管理。
一.SQLyog 的用户权限管理 1. 创建用户 2. 修改账号和密码 1.登入刚拿创建的jarvan2改账号和密码. 3. 查看和修改权限 4. 点击历史SQL代码就能看到图形化界面对应的SQL语句 ...
- linux php 用户权限管理,LINUX教程:Linux用户及权限管理
<LINUX教程:Linux用户及权限管理>要点: 本文介绍了LINUX教程:Linux用户及权限管理,希望对您有用.如果有疑问,可以联系我们. [文件治理.管道.用户及组治理.用户及权限 ...
- oracle 删除系统用户,Oracle数据库如何创建和删除用户
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 1. 创建用户: SQL> create user user01 identified by user01; User created. 但登录提示 ...
- 数据库—用户权限管理(三十三)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 一.概述 二.用户权限类型 三.用户赋权 四.权限删除 五.用户删除 前言 数据库用户权限管理是指对数据库用户的权限进行 ...
- aix oracle 登录用户,AIX 系统及 Oracle 数据库用户权限管理
AIX 系统及Oracle 数据库用户权限管理 1.AIX 系统用户管理.系统用户管理 1.1 对于root 用户.在aix 系统中root 账户是具有最高特权的,因此保护好root 的密码尤为重要, ...
- 基于LDAP的WebLogic虚拟化统一用户权限管理
0 引言 随着国家电网SG186工程建设的深入,企业门户的建设也开始由省电力公司一级向地市供电公司一级延伸.根据国家电网门户典型设计,河南省电力公司采用了虚拟方式建设全省各地市门户.由于虚拟门户的软. ...
- AdminEx后台管理系统模板、用户权限管理设计、按钮级别
一.前言 最近有时间研究了一下做后台管理系统的模板界面,开源的比较知名很早之前就用过EasyUI.Vue+ElementUI,Layui,Bootstrap等. EasyUI个人感觉功能强大,帮助we ...
- MySQL讲义第2讲——数据库操作
MySQL讲义第2讲--数据库操作 文章目录 MySQL讲义第2讲--数据库操作 一.创建数据库 1.查看MySQL默认的字符集和校对规则 2.创建数据库时省略字符集和校对规则 3.创建数据库时指定字 ...
- linux无法删除用户的组,Linux无法使用userdel删除用户和组的解决办法
转自:http://www.linuxidc.com/Linux/2013-07/87371.htm 简述: 今天在看书的时候,看到有个实例,手痒痒的跟着做了起来...但是,出现问题了..测试的用户和 ...
最新文章
- 计算机电路基础学什么,"计算机电路基础"学习辅导.doc
- 2009年全国计算机软件考试推荐用书目录
- C++走向远洋——63(项目二2、两个成员的类模板)
- EJB3.0学习笔记---第一个EJB程序:
- 张高兴的 Windows 10 IoT 开发笔记:BMP180 气压传感器
- 一起谈.NET技术,asp.net控件开发基础(9)
- creo减速器建模实例,减速箱proE整体及零件图
- blackberry 9630CDMA写号教程
- 怎么禁止使用计算机的软件,电脑如何禁止程序运行 一键彻底禁止电脑软件运行方法...
- 机器学习(周志华)学习笔记(二)
- 0x0000011b共享打印机无法连接解决方法
- guitar pro8.1免费的吉他学习辅助软件
- 业界天花板 | 四度入围Gartner全球《数据防泄露市场指南》
- STM32自定义USB设备开发详细流程讲解及全套资料源码下载(基于libusb)
- 软件技术专业需要学什么?
- eclipse 配置字符集 字体大小 护眼
- 不同意安装条款就没法使用?新法规对APP霸王条款说“不”
- 启航,超越-动网论坛.NET 1.0正式版发布
- java.lang.NoSuchFieldError: No static field id_sl_hlry of type I in class Lcom/bsoft/mob/common/R$id
- Linux自学参考总结