insert语句创建用户
insert into user (hostuser,passwordssl cipherx509 issuer,x509 subject)values("主机号","用户名",password("密码"),"","","");
update语句修改用户密码
update user set password=password("密码")
where host="主机号"and user="用户名";
delete语句删除用户
delete from user where host="主机号"and user="用户名";
注意:以上代码需要刷新权限 ,刷新权限后生效
刷新权限
flush privileges;
以下代码不需刷新权限直接生效。
create语句创建用户
create user "用户名"@"主机号"identified by"密码";
set语句修改密码
set password =password("密码");
set password for "用户名"@"主机号"= password("密码");
授予用户权限
GRANT语句不仅是授权语句,还可以达到添加新用户或修改用户密码的作用。
GRANT语句的语法格式为:
GRANT<权限名称>[(字段列表)]ON<对象名>TO<'用户名'>@<'主机>[IDENTIFIED BY[PASSWORD]<'新密码'>][WITH GRANT OPTION];
说明:
①“权限名称”中常用的权限如下。
ALL[PRIVILEGES]:除GRANT OPTION之外的所有简单权限。
CREATE:允许创建数据表。
ALTER:允许修改数据表。
DROP:允许删除数据表。
SELECT:允许检索数据表。
INSERT:允许在数据表中插入数据。
DELETE:允许在数据表中删除数据。
UPDATE:允许在数据表中更新数据。
INDEX:允许在数据表中定义索引。
CREATE VIEW:允许创建视图。
EXECUTE:允许运行指定的存储过程。
②“对象名”有以下权限级别。
全局权限:适用于一个给定服务器中的所有数据库,可以用“*。 *”来表示。
数据库权限:适用于一个给定数据库中的所有数据库对象,可以用“数据库名。·”来表示。
表权限:适用于一个给定表中的所有列,可以用“数据库名,表名”来表示。
列权限:适用于一个给定表中的单一列,可以先用“数据库名,表名”来表示,再在权限名称后加上“[(字段列表)]”可选项,如SELECT(员工ID,姓名)。
子程序权限:适用于给定存储过程或函数,可以用“PROCEDURE|FUNCTION数据库名,过程名”来表示。
③“<用户名'>@<'主机'>”中若“用户名”不存在则添加用户“[IDENTIFIEDBY[PASSWORD]<'新密码'>]”可选项可以设置新用户的密码,若“用户名”已经存在,则此选项可以修改用户的密码。
④“[WITH GRANT OPTION]”可选项表示允许用户将获得的权限授予其他用户。
2.查看用户权限
show grants for "用户名"@"主机号"\G
grant语句创建用户并授权
grant 权限 on 库名.表名 to "用户名"@"主机号"identified by"密码";
权限 create,drop,insert,update, delete, select
grant语句给用户授权
grant 权限 on 库名.表名 to"用户名"@"主机号";
revoke语句回收用户部分权限
revoke 权限 on 库名.表名 from "用户名"@"主机号";
revoke语句回收用户全部权限
revoke all privileges,grant option from "用户名"@"主机号";
(1)使用SHOW GRANTS语句查看授权信息,其语法格式为:
SHOW GRANTS FOR<用户名'>@<'主机>
(2)使用SELECT 语句查看 mysql.user表中用户的全局权限,其语法格式为:
SELECT<权限字段>FROM mysql.user
[WHERE User=<'用户名'>AND Host=<'主机'>];
说明:“mysql.user”表可以查询到用户的全局权限,“<权限字段>”中常用的权限字段Select_priv、Insert_priv、Create_priv等,mysql.db中可以查询到用户的数据库权限。
3.回收用户权限
使用REVOKE语句回收用户权限,其语法格式为:
REVOKE<权限名称>[(字段列表)]ON<对象名>FROM<'用户名'>@<主机>;
说明:REVOKE语句用来取消指定用户的某些指定权限,与GRANT语句类似。
【任务8.3】数据库用户管理
当管理员在MySQL中添加了用户后,因为各种问题可能需要对用户进行改名、修改密码或删除用户来实现对用户的管理。
1.修改用户的名称
使用 RENAME USER 语句可以修改用户的名称,其语法格式为:
RENAME USER <' 旧的用户名'>@<'主机'>TO<'新的用户名'>@<'主机>;
说明:RENAME USER 语句可以对用户进行重命名,该语句可以同时对多个已存在的用户进行重命名,各个用户之间使用逗号分隔,重命名时“旧的用户名”必须已经存在,并且“新的用户名”还不存在,使用者必须拥有“RENAME USER”权限。
2.修改用户的密码
(1)使用mysqladmin命令修改用户密码的语法格式为:mysqladmin-u<用户名> [-h<主机>]-p password[<新密码>]说明:“mysqladmin”是一条外部命令,必须在服务器端的“命令提示符”下执行。
(2)使用SET PASSWORD语句修改用户密码的语法格式为:
SET PASSWORD[FOR<'用户名'>@<'主机'>]=PASSWORD(<'新密码>) ;
说明:SET PASSWORD语句可以修改用户的密码,语句中若不加“[FOR<'用户名'>@<'主机'>]”可选项,则修改当前用户密码。(
3)使用UPDATE语句修改用户密码的语法格式为:
UPDATE mysql.user SET Password=PASSWORD(<'新密码'>)WHERE User=<'用户名'>AND Host=<'主机'>;
说明:“新密码”需要用“PASSWORD()”函数来加密。
3.删除用户
(1)使用DROP USER 语句删除用户的语法格式为:
DROP USER<'用户名'>@<'主机'>;
说明:DROP USER语句可以删除一个或多个普通用户,各用户之间用逗号分隔。如果删除用户已经创建的数据库对象,那么该用户将继续保留。使用者必须拥有“DROP USER”权限。
(2)使用DELETE语句删除用户的语法格式为:
DELETE FROM mysql.user WHERE User=<'用户名'> AND Host=<'主机'>;
说明:使用DELETE语句删除用户时,使用者必须拥有“mysql.user”的“De-lete”权限。