MySQL用户管理

这篇具有很好参考价值的文章主要介绍了MySQL用户管理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

MySQL用户管理,mysql,数据库

1.用户

1.1 用户信息

mysql> use mysql;
Database changed
mysql> select host,user,authentication_string from user;
+-----------+---------------+-------------------------------------------+
| host       | user           | authentication_string |
+-----------+---------------+-------------------------------------------+
| localhost | root           | * 81 F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| localhost | mysq    l .session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| localhost | mysql .sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
+-----------+---------------+-------------------------------------------+
-- 可以通过 desc user 初步查看一下表结构
字段解释:
host 表示这个用户可以从哪个主机登陆,如果是 localhost ,表示只能从本机登陆
user 用户名
authentication_string 用户密码通过 password 函数加密后的
*_priv 用户拥有的权限

 1.2 创建用户

语法:

create user ' 用户名 ' @ ' 登陆主机 /ip' identified by ' 密码 ' ;

案例:

mysql> create user 'wmh' @ 'localhost' identified by '12345678' ;
Query OK, 0 rows affected ( 0.06 sec)
mysql> select user,host,authentication_string from user;
+---------------+-----------+-------------------------------------------+
| user            | host      | authentication_string |
+---------------+-----------+-------------------------------------------+
| root            | %          | *A2F7C9D334175DE9AF4DB4F5473E0BD0F5FA9E75 |
| mysql .session | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| mysql .sys | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| wmh | localhost | * 84 AAC12F54AB666ECFC2A83C676908C8BBC381B1 | -- 新增用户
+---------------+-----------+-------------------------------------------+
4 rows in set ( 0.00 sec)

1.3 删除用户

语法: 

drop user ' 用户名 ' @ ' 主机名'

示例:

mysql> select user,host,authentication_string from user;
+---------------+-----------+-------------------------------------------+
| user           | host       | authentication_string |
+---------------+-----------+-------------------------------------------+
| root            | %          | *A2F7C9D334175DE9AF4DB4F5473E0BD0F5FA9E75 |
| mysql .session | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| mysql .sys | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| wmh         | localhost | * 84 AAC12F54AB666ECFC2A83C676908C8BBC381B1 |
+---------------+-----------+-------------------------------------------+
4 rows in set ( 0.00 sec)
mysql> drop user wmh; -- 尝试删除
ERROR 1396 (HY000): Operation DROP USER failed for 'wmh' @ '%' -- <= 直接给个用户名,不能删除,它默认是% ,表示所有地方可以登陆的用户

 文章来源地址https://www.toymoban.com/news/detail-820862.html

mysql> drop user 'wmh' @ 'localhost' ; -- 删除用户
Query OK, 0 rows affected ( 0.00 sec)
mysql> select user,host,authentication_string from user;
+---------------+-----------+-------------------------------------------+
| user            | host      | authentication_string |
+---------------+-----------+-------------------------------------------+
| root            | %          | *A2F7C9D334175DE9AF4DB4F5473E0BD0F5FA9E75 |
| mysql .session | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| mysql .sys | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
+---------------+-----------+-------------------------------------------+
3 rows in set ( 0.00 sec)

1.4 修改用户密码

语法:
自己改自己密码 
set password=password( ' 新的密码 ' );

root用户修改指定用户的密码

set password for '用户名'@'主机名'=password('新的密码'); 

mysql> select host,user, authentication_string from user;
+-----------+---------------+-------------------------------------------+
| host       | user           | authentication_string |
+-----------+---------------+-------------------------------------------+
| %           | root            | *A2F7C9D334175DE9AF4DB4F5473E0BD0F5FA9E75 |
| localhost | mysql .session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| localhost | mysql .sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| localhost | wmh          | * 84 AAC12F54AB666ECFC2A83C676908C8BBC381B1 |
+-----------+---------------+-------------------------------------------+
4 rows in set ( 0.00 sec)
mysql> set password for 'wmh' @ 'localhost' =password( '87654321' );
Query OK, 0 rows affected, 1 warning ( 0.00 sec)
mysql> select host,user, authentication_string from user;
+-----------+---------------+-------------------------------------------+
| host       | user           | authentication_string                   |
+-----------+---------------+-------------------------------------------+
| %           | root           | *A2F7C9D334175DE9AF4DB4F5473E0BD0F5FA9E75 |
| localhost | mysql .session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| localhost | mysql .sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| localhost | wmh         | * 5 D24C4D94238E65A6407DFAB95AA4EA97CA2B199 |
+-----------+---------------+-------------------------------------------+
4 rows in set ( 0.00 sec)

2.数据库的权限

MySQL数据库提供的权限列表:
MySQL用户管理,mysql,数据库 

2.1 给用户授权

刚创建的用户没有任何权限。需要给用户授权。
语法 :
grant 权限列表 on . 对象名 to ' 用户名 ' @ ' 登陆位置 ' [identified by ' 密码 ' ]
说明:
权限列表,多个权限用逗号分开
MySQL用户管理,mysql,数据库
*.* : 代表本系统中的所有数据库的所有对象(表,视图,存储过程等)
.* : 表示某个数据库中的所有数据对象 ( 表,视图,存储过程等 )
identified by 可选。 如果用户存在,赋予权限的同时修改密码 , 如果该用户不存在,就是创建用户

案例:

-- 使用 root 账号
-- 终端 A
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| 57 test |
| bit_index |
| ccdata_pro |
| innodb_test |
| musicserver |
| myisam_test |
| mysql |
| order_sys |
| performance_schema |
| scott |
| sys |
| test |
| vod_system |
+--------------------+
14 rows in set ( 0.00 sec)
mysql> use test;
Database changed
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| account |
| student |
| user |
+----------------+
3 rows in set ( 0.01 sec)
-- 给用户 wmh 赋予 test 数据库下所有文件的 select 权限
mysql> grant select on test.* to 'wmh' @ 'localhost' ;
Query OK, 0 rows affected ( 0.01 sec)
-- 使用 wmh 账号
-- 终端 B
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
+--------------------+
1 row in set ( 0.00 sec)
-- 暂停等 root 用户给 wmh 赋完权之后,在查看
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| test | -- 赋完权之后,就能看到新的表
+--------------------+
2 rows in set ( 0.01 sec)
mysql> use test;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| account |
| student |
| user |
+----------------+
3 rows in set ( 0.00 sec)
mysql> select * from account;
+----+--------+---------+
| id | name | blance |
+----+--------+---------+
| 2 | 李四 | 321.00 |
| 3 | 王五 | 5432.00 |
| 4 | 赵六 | 543.90 |
| 5 | 赵六 | 543.90 |
+----+--------+---------+
4 rows in set ( 0.00 sec)
-- 没有删除权限
mysql> delete from account;
ERROR 1142 ( 42000 ): DELETE command denied to user 'wmh' @ 'localhost' for table
'account'
备注:特定用户现有查看权限
mysql> show grants for 'wmh' @ '%' ;
+-----------------------------------------------+
| Grants for wmh@% |
+-----------------------------------------------+
| GRANT USAGE ON *.* TO 'wmh' @ '%' |
| GRANT ALL PRIVILEGES ON `test`.* TO 'wmh' @ '%' |
+-----------------------------------------------+
2 rows in set ( 0.00 sec)
mysql> show grants for 'root' @ '%' ;
+-------------------------------------------------------------+
| Grants for root@% |
+-------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root' @ '%' WITH GRANT OPTION |
+-------------------------------------------------------------+
1 row in set ( 0.00 sec)

注意:如果发现赋权限后,没有生效,执行如下指令:

flush privileges;  

2.2 回收权限

语法 :

revoke 权限列表 on . 对象名 from ' 用户名 ' @ ' 登陆位置 '

示例:

-- 回收 wmh test 数据库的所有权限
--root 身份,终端 A
mysql> revoke all on test.* from 'wmh' @ 'localhost' ;
Query OK, 0 rows affected ( 0.00 sec)
--wmh 身份,终端 B
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| test |
+--------------------+
2 rows in set ( 0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
+--------------------+
1 row in set ( 0.00 sec)

 

到了这里,关于MySQL用户管理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL数据库——SQL(4)-DCL(管理用户、权限控制)

    目录 管理用户 1.查询用户 2.创建用户 3.修改用户密码 4.删除用户 示例 权限控制 1.查询权限 2.授予权限 3.撤销权限 示例 DCL总结 DCL DCL英文全称是Data Control Language(数据控制语言),用来管理数据库用户、控制数据库的访问权限。 注意: 主机名可以使用通配符‘%’。 这类S

    2024年02月12日
    浏览(35)
  • 【Mysql数据库从0到1】-入门基础篇--用户与权限管理

    Mysql 用户分为root用户和普通用户,其中root用户是数据库超级管理员,拥有所有权限(创建、删除、修改密码、授权等管理权限),普通用户只拥有被授予的权限。 Mysql数据库的安全性通过账户管理来保障。 1.1 🍃 Mysql服务器登录 🍀 简单使用 🍀 复杂使用 1.2 🍃 用户创建

    2024年02月07日
    浏览(52)
  • MySQL数据库——MySQL GRANT:用户授权

    授权就是为某个用户赋予某些权限。例如,可以为新建的用户赋予查询所有数据库和表的权限。MySQL 提供了 GRANT 语句来为用户设置权限。 在 MySQL 中,拥有 GRANT 权限的用户才可以执行  GRANT  语句,其语法格式如下: 其中: priv_type 参数表示权限类型; columns_list 参数表示权

    2024年02月06日
    浏览(47)
  • Mysql数据库用户操作

    # Mysql数据库用户操作 ## 1.1创建用户 ```shell create user ‘nz’ identified by ‘123456’ # hzm:用户账号,123456:密码 create user ‘nz’@’%’ identified by ‘123456’ #所有ip都可用账号 create user ‘nz’@’localhost’ identified by ‘123456’ #本地可用账号 create user ‘nz’@’192.168.12.1’ identified

    2024年02月16日
    浏览(37)
  • MySQL数据库——MySQL创建用户(3种方式)

    MySQL 在安装时,会默认创建一个名为 root 的用户,该用户拥有超级权限,可以控制整个 MySQL 服务器。 在对 MySQL 的日常管理和操作中,为了避免有人恶意使用 root 用户控制数据库,我们通常创建一些具有适当权限的用户,尽可能地不用或少用 root 用户登录系统,以此来确保数

    2024年02月05日
    浏览(30)
  • 【数据库】 mysql用户授权详解

    目录 MySQL用户授权 一,密码策略 1,查看临时密码 2,查看数据库当前密码策略: 二, 用户授权和撤销授权 1、创建用户 2,删除用户 3,授权和回收权限 mysql刚安装时,临时密码会存储在 /var/log/mysqld.log 1,查看临时密码 方法一:直接给出密码   方法二:查到的语句的最后为

    2024年02月11日
    浏览(42)
  • 【MySQL数据库】MySQL数据库管理

    Structure Query Language(结构化查询语言)简称SQL,它被美国国家标准局(ANSI)确定为关系型数据库语言的美国标准,后被国际化标准组织(ISO)采纳为关系数据库语言的国际标准。数据库管理系统可以通过SQL管理数据库;定义和操作数据,维护数据的完整性和安全性。 数据:(data)

    2024年02月08日
    浏览(36)
  • MySQL数据库、表、用户的基础操作

    根据两个实例进行练习 1)创建库 2)创建表 3)字段插入(调换位置) 4)修改字段类型 5)修改字段名 6)增加字段 7)修改表名(这一步做掉了,最后才添加上来。所以后面添加外键主表名依旧为customers。) 8)删除字段 9)修改存储引擎 2、 (1)创建表、添加外键约束 (2)删除外

    2024年02月12日
    浏览(32)
  • Camunda8微服务流程引擎搭建实战 -- camunda-identity接入keycloak,使用mysql数据库以OpenID Connect的方式实现用户的权限管理

    准备需要: docker最新版,camunda官方建议使用容器且最好能使用k8s,而且jar包启动失败时不能停止 mysql8.0+,keycloak默认使用postgresql,我不会 提前启动好其他组件,es,tasklis,operate,zeebe,偷个懒,我使用的jar包运行,也可以容器 组件下载地址,版本8.3.4 因为容器通信的问题(应该是通信/网络的

    2024年01月19日
    浏览(40)
  • MySQL数据库配置及创建用户和授权

    注意: 都是基于MySQL8.0以上版本 需要注意的是,修改 MySQL 的配置参数时需要谨慎,如果参数配置不合理,可能会导致数据库性能下降或出现其他问题。修改 MySQL 的配置参数时,最好具有一定的经验或者了解相关的 MySQL 参数调优知识。 vi /etc/my.cnf 第一步: cd /etc #进入etc目录

    2024年02月15日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包