1)MySQL中创建普通用户:
语法:
CREATE USER `username`@`host` [IDENTIFIED BY [PASSWORD] `password`];
其中,IDENTIFIED BY 语句用来设置密码,默认时密码为空。
其他参数:
username : 表示创建的用户名
host : 表示指定用户登陆的主机名,如是本地用户可使用 “localhost”,
如该用户可登陆任何远程主机,可使用通配符 “%”。
PASSWORD : 表示使用哈希值设置密码,为可选项。
password : 表示用户登陆时使用的明文密码。
例如创建本地用户 teacher 密码123456,本地用户,不需要密码。SQL如下
CREATE USER `teacher`@`localhost` IDENTIFIED BY `123456`; //有密码
CREATE USER `teacher`@`localhost`; //没有密码
注意:
DOS窗口下需要先登陆MySQL 服务器
创建之后查看:
切换到mysql数据库下:use mysql
查询所有用户及所有权限:select * from user
反斜杠\G 防止格式乱
N : 表示没有权限 Y :表示拥有此权限
2)执行 GRANT 语句创建用户并授权
语法:
CRANT priv_type ON databasename.tablename TO `username`@`host` [IDENTIFIED BY [PASSWORD] `password`]
[WITH GRANT OPTION];
priv_type : 表示设置的用户操作权限,如果授予所有权限可使用ALL 。
MySQL中的权限有多,以下列出常用的数据库或表操作权限
@CRANT 和 DROP 权限,可以创建数据库,或删除已有数据库和表。
@INSERT / DELECT / SELECT 和 UPDATE 权限,允许在一个数据库现有的表上实施增,删,查,改操作。
@ALTER 权限,可以用 ALTER ALTER来更改表的结构和重命名表。
@databasename.tablename 表示所创建用户账号的权限范围,及只能在指定数据库和表上使用此权限,
如果给所有数据库和授权,则可使用 *.*
@WITH GRANT OPTION 表示新建立的用户赋予 GRANT 权限,可选
@其他部分与 CRANT USER 语句一致
1. grant 权限 on 数据库.数据表 to '用户' @ '主机名' IDENTIFIED BY 密码;
例:
1.1 给 xiaogang 分配所有的权限
grant all on *.* to 'xiaogang'@'localhost';
1.2 如何更精准的控制用户的权限呢?
grant 权限 on 数据库.数据表 to '用户' @ '主机名';
例:
让 xiaogang 有查询 tmp 数据库 tmp1 表的权限;
grant select on temp.temp1 to 'xiaogang'@'localhost';
//这个时候 xiaogang 就具有查询temp小的temp1的权限了。
3)使用mysqladmin 命令修改root账户密码:
语法:
mysqladmin -u username -p password "newpassword" //输入新密码
Enter password: //输入旧密码
4)使用SET命令修改用户密码:
用户登陆MySQL服务器后,可使用SET命令修改当前用户密码:语法如下
语法:
SET PASSWORD [FOR `username`@`host`]= PASSWORD (`newpassword`);
其中,PASSWORD ()函数是对密码加密,“newpassword”是设置的新密码。
如果修改非当前登陆用户密码,则需要使用FOR指定要修改的帐户名。
注意:
只有超级管理员用户(如root用户)才能修改其他用户密码,如果是普通用户,可省略FOR子句修改自己的密码。
#修改当前登录账户密码
SET PASSWORD = PASSWORD("0000");
#修改其他用户
SET PASSWORD FOR `teacher`@`localhost`=PASSWORD("88888");
5)删除普通用户
语法:
DROP USER `username`@`localhos` ,[`username1`@`localhost`.........];
例:
DROP USER `text1`@`localhost`;
注意:
要使用DROP USER 语句,必须拥有MySQL 数据库的全局 CREATE USER 权限或 DELECT权限,
一般由数据库管理员(DBA)来执行此操作。