Linux中,MySQL的用户管理
创始人
2024-11-15 18:08:15
0

MySQL库中的表及其作用

user表

User表是MySQL中最重要的一个权限表,记录允许连接到服务器的帐号信息,里面的权限是全局级的。

db表和host表

db表和host表是MySQL数据中非常重要的权限表。db表中存储了用户对某个数据库的操作权限,决定用户能从哪个主机存取哪个数据库。host表中存储了某个主机对数据库的操作权限,配合db权限表对给定主机上数据库级操作权限做更细致地控制。

table_priv表和columns_priv表

tables_priv表是用来对表设置操作权限。

columns_prive表用来对表的某一列设置权限。

procs_priv表

procs_priv表可以对存储过程中存储函数设置操作权限

账户管理

登录和退出MySQL服务器

MySQL命令常见的参数以及登录和退出MySQL服务器的方法

使用root用户登录到本地mysql服务器的test库中

mysql -u root -ppwd123 -h localhost test

使用root用户登录到本地mysql服务器的test库中,执行一条查询语句

mysql -u root -p -h localhost test -e "DESC person;"

新建普通用户

使用create user或grant语句

例如:创建一个用户名为:zhangsan,密码是pwd123,主机名是localhost的用户。

create user 'zhangsan'@'localhost' identified by 'pwd123';

使用GRANT语句创建一个新的用户testUser,密码为testpwd。用户 testUser对所有的数据有查询和更新权限,并授于对所有数据表的SELECT和UPDATE权限

GRANT SELECT,UPDATE  ON *.* TO 'testUser'@'localhost' IDENTIFIED BY 'testpwd';    /*创建账户并授予权限*/

SELECT Host,User,Select_priv,Update_priv, FROM mysql.user where user='testUser';  /*查看账户权限信息*/

删除普通用户

使用drop user语句

使用drop删除用户‘zhangsan’

drop user ‘zhangsan’@‘localhost’;

使用delete命令删除用户

delete from mysql.user where user='zhangsan' and host='localhost';

密码的修改

root用户修改自己的密码

1)mysqladmin -u root -p password "123456"

2)使用update命令,修改user表中的密码。

例:update user set password=password('root123') where user='root';

3)使用SET语句修改root用户的密码

SET PASSWORD=password("rootpwd3");

root用户修改普通用户密码

1、使用SET语句将testUser用户的密码修改为“newpwd”

SET PASSWORD FOR 'testUser'@'localhost'=password("newpwd");

2、使用UPDATE语句修改普通用户的密码

使用UPDATE语句将testUser用户的密码修改为“newpwd2”:

UPDATE   mysql.user set Password=PASSWORD("newpwd2")

WHERE User="testUser" and Host="localhost";

3)使用GRANT语句修改普通用户密码

【例13.13】使用GRANT语句将testUser用户的密码修改为“newpwd3”:

GRANT USAGE ON *.* TO 'testUser'@'localhost' IDENTIFIED BY 'newpwd3';

普通用户修改密码

3)使用GRANT语句修改普通用户密码

普通用户登录MySQL服务器后,通过SET语句设置自己的密码。

SET PASSWORD = PASSWORD(‘newpassword’);

root用户密码丢失的解决办法

(1)使用--skip-grant-tables选项启动MySQL服务

mysql start-mysqld --skip-grant-tables

(2)使用root用户登录和重新设置密码

mysql -u root

update mysql.user set password=password('mypass') where user='root' and host='localhost';

(3)加载权限表

flush privileges;

或者修改/etc/my.cnf配置文件,在里面添加skip-grant-tables

然后重复上面的方式,免密登录MySQL中,进行密码的修改。

权限管理

1:MySQL的各种权限

账户权限信息被存储在mysql数据库的user、db、host、tables_priv、columns_priv和procs_priv表中。在MySQL启动时,服务器将这些数据库表内容读入内存。

2:授权

授权就是为某个用户授于权限。合理的授权可以保证数据库的安全。MySQL中可以使用GRANT语句为用户授于权限。

使用GRANT语句创建一个新的用户grantUser,密码为“grantpwd”。用户grantUser对所有的数据有查询、插入权限,并授于GRANT权限。GRANT语句及其执行结果如下:

MySQL> GRANT SELECT,INSERT ON *.* TO 'grantUser'@'localhost'  IDENTIFIED BY 'grantpwd' WITH GRANT OPTION;

Query OK, 0 rows affected (0.03 sec)

结果显示执行成功,使用SELECT语句查询用户testUser2的权限:

MySQL> SELECT Host,User,Select_priv,Insert_priv, Grant_priv FROM mysql.user where user='grantUser';

3.回收权限

收回权限就是取消已经赋于用户的某些权限。收回用户不必要的权限可以在一定程度上保证系统的安全性。MySQL中使用REVOKE语句取消用户的某些权限。

使用REVOKE语句取消用户testUser的更新权限。REVOKE语句及其执行结果如下:

MySQL> REVOKE UPDATE ON *.* FROM 'testUser'@'localhost';

Query OK, 0 rows affected (0.00 sec)

执行结果显示执行成功,使用SELECT语句查询用户test的权限:

MySQL> SELECT Host,User,Select_priv,Update_priv,Grant_priv FROM MySQL.user where user='testUser';

4:查看权限

SHOW GRANTS语句可以显示指定用户的权限信息,使用SHOW GRANT语句查看账户信息。

SHOW GRANTS FOR ‘user’@’host’ ;

使用SHOW GRANTS语句查询用户testUser的权限信息。SHOW GRANTS语句及其执行结果如下:

MySQL> SHOW GRANTS FOR 'testUser'@'localhost';

相关内容

热门资讯

一分钟内幕!科乐吉林麻将系统发... 一分钟内幕!科乐吉林麻将系统发牌规律,福建大玩家确实真的是有挂,技巧教程(有挂ai代打);所有人都在...
一分钟揭秘!微扑克辅助软件(透... 一分钟揭秘!微扑克辅助软件(透视辅助)确实是有挂(2024已更新)(哔哩哔哩);1、用户打开应用后不...
五分钟发现!广东雀神麻雀怎么赢... 五分钟发现!广东雀神麻雀怎么赢,朋朋棋牌都是是真的有挂,高科技教程(有挂方法)1、广东雀神麻雀怎么赢...
每日必看!人皇大厅吗(透明挂)... 每日必看!人皇大厅吗(透明挂)好像存在有挂(2026已更新)(哔哩哔哩);人皇大厅吗辅助器中分为三种...
重大科普!新华棋牌有挂吗(透视... 重大科普!新华棋牌有挂吗(透视)一直是有挂(2021已更新)(哔哩哔哩)1、完成新华棋牌有挂吗的残局...
二分钟内幕!微信小程序途游辅助... 二分钟内幕!微信小程序途游辅助器,掌中乐游戏中心其实存在有挂,微扑克教程(有挂规律)二分钟内幕!微信...
科技揭秘!jj斗地主系统控牌吗... 科技揭秘!jj斗地主系统控牌吗(透视)本来真的是有挂(2025已更新)(哔哩哔哩)1、科技揭秘!jj...
1分钟普及!哈灵麻将攻略小,微... 1分钟普及!哈灵麻将攻略小,微信小程序十三张好像存在有挂,规律教程(有挂技巧)哈灵麻将攻略小是一种具...
9分钟教程!科乐麻将有挂吗,传... 9分钟教程!科乐麻将有挂吗,传送屋高防版辅助(总是存在有挂)1、完成传送屋高防版辅助透视辅助安装,帮...
每日必看教程!兴动游戏辅助器下... 每日必看教程!兴动游戏辅助器下载(辅助)真是真的有挂(2025已更新)(哔哩哔哩)1、打开软件启动之...