MySql 用户权限
Posted debug之路
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySql 用户权限相关的知识,希望对你有一定的参考价值。
# 增加指定数据库具有插入、查询、更新以及删除的权限用户
grant insert,select,update,delete on databasename.tablename to username@localhost identified by 'password';
# localhost 只能本地登陆
# ‘%’ 表示所有地址能够登陆
flush privileges; # 刷新权限设置
# 查看root@localhost 的权限
show grants for root@localhost
修改密码
mysql -u root
use mysql;
update user set Password = PASSWORD('new password') where user = 'root';
flush privileges;
删除用户
delete from user where User ='username' and host = 'localhost';
flush privileges;
drop user username@'%';
一些命令
describe tablename;
desc tablename ;
show columns from tablename;# 获取表结构
rename table tablename origin_table_name to new_table_name; # 更改表名
update tablename set fieldname= replace(fidlename,'oldContent','new_content');# 更新字段内容
权限介绍
mysql库中存在4个控制权限的表,分别为user
,db
,tables_priv
,columns_priv
mysql权限表的验证过程为:
先从user表中的Host,User,Password这3个字段中判断连接的ip、用户名、密码是否存在,存在则通过验证。
通过身份认证后,进行权限分配,按照user,db,tables_priv,columns_priv的顺序进行验证。即先检查全局权限表user,如果user中对应的权限为Y,则此用户对所有数据库的权限都为Y,将不再检查db, tables_priv,columns_priv;如果为N,则到db表中检查此用户对应的具体数据库,并得到db中为Y的权限;如果db中为N,则检查tables_priv中此数据库对应的具体表,取得表中的权限Y,以此类推。
权限级别
全局性的管理权限:作用于整个MySQL实例级别 。
grant all privileges on *.* to root@localhost;
数据库级别的权限:作用于某个指定的数据库上或者所有的数据库上 。
grant select,insert,update,delete on database_name.* to user_name@'%';
数据库对象级别的权限:作用于指定的数据库对象上(表、视图等)或者所有的数据库对象上。
grant select,insert,update,delete on database_name.table_name to user_name@'%';
# user_name 具有select ,insert,update和delete 权限。
以上是关于MySql 用户权限的主要内容,如果未能解决你的问题,请参考以下文章