你的位置:首页 > 数据库

[数据库]mysql用户密码修改,用户添加、删除及设置权限


一下的示例所用用户名和密码为:test,111111

 

Mysql密码修改:

Mysql修改密码需要root的权限,先执行mysql -uroot -p(密码);

1)使用set password方式来修改账户密码:

set password for ‘hzd’@’localhost’=password(‘newpassword’);

2)使用phpMyAdmin修改,直接用SQL语句修改mysql数据库库的user表,不过别忘了使用PASSWORD函数, 插入用户用Insert命令,修改用户用Update命令,删除用Delete命令。

 

mysql用户的添加和授权:

1)insert方式添加:

用户root权限登录mysql,新建test用户

 mysql>Insert into mysql.user(Host,User,Password) values(‘localhost’,’test’,password(‘111111’));

刷新系统权限表  mysql> FLUSH PRIVILEGES;

如果报错

#1364 – Field ‘ssl_cipher’ doesn’t have a default value

修改MySQL配置文件Linux系统为my.cnf,Windows系统为my.ini

 

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

修改为

 

sql_mode=NO_ENGINE_SUBSTITUTION

重启MySQL服务

2)grant方式添加:

用户root权限登录mysql,新建test用户

mysql> grant usage on *.* to ‘test’@’localhost’ identified by ‘111111’;

给test用户授权

mysql>grant all on ‘hzd’.* to ‘test’@’localhost’ identified by “111111”;

这句话的意思是:授权用户’test’(其密码为111111)可以任何主机登录,可对数据库’hzd’下的所有表进行所有操作。

 

以下是几句关于授权的sql语句:

grant语句的语法如下:

grant privileges (columns) on what to user identified by “password” with grant option

 

1)grant select,insert on ‘*’ to test@’local’ identified by ‘111111’;

这句命令的意思是,授权用户“test”(其口令为“111111”)只能在本地localhost登录,可对任何的任何表(“*.*”前一个“*”代表任何数据库,后一个“*”代表在前个“*”的约束下的任何表)进行select,insert的操作。

 

2)grant update,delete on scut.student to test@"%" Identified by "123";

这句命令的意思是,授权用户“test”(其口令为“123”)可以任何主机登录,可对数据库"scut”下的表“student”进行update,delete的操作;

 

3)grant all on len.* to ca@"%" Identified by "123456";

这句命令的意思是,授权用户“ca”(其口令为“123456”)可以任何主机登录,可对数据库"len”下的所有表进行所有的操作;

 

用户删除:

drop user test@localhost

 

mysql授权查看:
select user from mysql.db where db="youdb"
实例:查看len数据库已经授权的用户
select user from mysql.db where db="len"

查看用户权限:

show grants for 你的用户

比如:
show grants for test@'localhost';

 

数据库/数据表/数据列权限: Alter: 修改已存在的数据表(例如增加/删除列)和索引。
Create: 建立新的数据库或数据表。
Delete: 删除表的记录。
Drop: 删除数据表或数据库。
INDEX: 建立或删除索引。
Insert: 增加表的记录。
Select: 显示/搜索表的记录。
Update: 修改表中已存在的记录。

全局管理权限:

file: 在MySQL服务器上读写文件。
PROCESS: 显示或杀死属于其它用户的服务线程。
RELOAD: 重载访问控制表,刷新日志等。
SHUTDOWN: 关闭MySQL服务。

特别的权限:

ALL: 允许做任何事(和root一样)。
USAGE: 只允许登录--其它什么也不允许做。

附:权限 表列名称 相应解释 使用范围 
  select Select_priv 只有在真正从一个表中检索时才需要select权限 表 
  insert Insert_priv 允许您把新行插入到一个存在的表中 表 
  update Update_priv 允许你用新值更新现存表中行的列 表 
  delete Delete_priv 允许你删除满足条件的行 表 
  create Create_priv 允许你创建新的数据库和表 数据库、表或索引 
  drop Drop_priv 抛弃(删除)现存的数据库和表 数据库或表 
  reload Reload_priv 允许您告诉服务器再读入授权表 服务器管理 
  shutdown Shutdown_priv 可能被滥用(通过终止服务器拒绝为其他用户服务) 服务器管理 
  process Process_priv 允许您察看当前执行的查询的普通文本,包括设定或改变口令查询 服务器管理 
  file File_priv 权限可以被滥用在服务器上读取任何可读的文件到数据库表 服务器上的文件存取 
  grant Grant_priv 允许你把你自己拥有的那些权限授给其他的用户 数据库或表 
  references References_priv 允许你打开和关闭记录文件 数据库或表 
  index Index_priv 允许你创建或抛弃(删除)索引 表 
  alter Alter_priv 允许您改变表格,可以用于通过重新命名表来推翻权限系统 表