Mysql数据库之用户授权

**前言**	
	在登录连接mysql的时候,通常使用root用户连接,但是如果我们想单独设置一个用户并且连接数据库后只能查看数据应该怎么做呢,这里就详细说明一下怎样给用户授权并且查看授权用户所对应的权限.

+++++++++++++++++++++++++++++
grant授权
授权就是添加用户给用户设置的相应权限,命令格式:

grant 权限列表 on 库名 to 用户名@"客户端地址" 
identified by "密码"      //授权用户密码
with grant option;  //可选项,让你添加的用户是否具备授权权限,可选项

举个例子
授权tom用户在本机登录对abc库具有完全权限,且具有授权权限:

grant all on abc to tom@"localhost" identified by "123qqq...A" with grant option;
//赋予授权权限后,使用此用户登录数据库可以创建用户并且赋予其他用户具备自身的权限.
//all 代表所有权限 localhost 代表本地登录

因此根据例子我们可以发现权限和登录方式可以有很多种:
权限列表:
all     //所有权限
usage   //无权限
select,update,insert   //个别权限
select,update(字段1,字段2,...)   //拥有查询权限和对个别字段具备修改权限
客户端地址:
%   //所有主机
192.168.2.%   //网段内所有主机
192.168.3.1         //指定只允许某一台主机
localhost         //数据库服务器本机

权限针对的库和表也可以有很多种:

*.*    //所有库所有表
库名.* //一个库
库名.表 //一张表
关于用户名授权时自定义,要有标识性,授权后存在mysql库的user表中.

应用示例:添加用户zhangsan,对所有库,表拥有完全权限,允许从任何客户端连接,密码123qqq…A,且具有授权权限.

grant all on *.* to zhangsan@"%" identified by "123qqq...A" with grant option;

第一次使用root用户登录数据库时,会有默认的四个库,其中mysql库为授权库记录授权信息,主要表有user表,db表,tables_priv表,columns_priv表,每个表中对应的主要内容如下:
user表 记录已有的授权用户及权限
db表 记录已有授权用户对数据库的访问权限
tables_priv表 记录已有授权用户对表的访问权限
columns_priv表 记录已有授权用户对字段的访问权限

查看表记录不仅可以获取用户权限,还可以通过更新记录,修改用户权限.
登录用户的相关命令

select user();          //显示登录用户名以及客户端地址
show grants;    //显示用户自身的访问权限
show grants for 用户名@"客户端地址";    //管理员查看已有授权用户权限
set password=password("密码");             //授权用户连接后修改连接密码
set password for 用户名@"客户端地址"=password("密码");   //管理员重置授权用户连接密码
drop user 用户名@"客户端地址";                 //删除授权用户(必须有管理员权限)``

撤销权限
命令格式:
revoke 权限列表 on 库名.表 from 用户名@“客户端地址”;

以上是对用户授权的一些基本使用命令

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要为MySQL数据库用户授权登录密码,可以按照以下步骤进行操作: 1. 以管理员身份登录到MySQL服务器。可以使用以下命令登录: ``` mysql -u root -p ``` 这将要求你输入管理员密码。 2. 登录成功后,使用以下命令授权用户可以通过密码登录: ``` ALTER USER 'username'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; ``` 将 `username` 替换为要授权用户名,`localhost` 替换为连接主机的地址,`password` 替换为该用户的登录密码。 3. 如果你要授权的是管理员账号的密码,可以使用以下命令: ``` ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; ``` 将 `password` 替换为管理员账号的登录密码。 4. 授予用户访问和管理数据库的权限。可以使用以下命令为用户授予权限: ``` GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost'; ``` 将 `database_name` 替换为要授权用户数据库名称,`username` 替换为要授权用户名,`localhost` 替换为连接主机的地址。 5. 刷新权限使更改生效: ``` FLUSH PRIVILEGES; ``` 这将确保授权立即生效。 请注意,以上命令假设你已经具有足够的权限来进行这些操作。如果你没有足够的权限,请联系具有管理员权限的用户来执行这些操作。另外,授权用户的权限应根据需要进行适当的调整,以确保安全性和最小权限原则。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值