添加用户
关于MySQL用户创建主要使用,CREATE USER(创建账户)和GRANT(账户授权)语句。这些语句会促使MySQL server适当的去修改授权相关的表数据。
注: 当也可以使用INSERT、UPDATE和DELETE的语句直接操作数据表,但这样会存在一定的风险,所以并不推荐这样做。
1. 创建用户
首先,你需要连接到数据库。如使用root用户去添加账户
例:创建finley用户,密码为password,并授予该用户所有数据库所有表的所有权限
CREATE USER 'finley'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'finley'@'localhost' WITH GRANT OPTION;
命令描述:
finely: 用户名。
localhost: 表示允许本机连接,可替换为’%’,表示允许所有主机连接。这里也可以IP、域名,甚至是’%.example.com‘,表示example.com域下的所有主机。可以是‘IP网段/子网掩码’,例如‘192.168.1.0/255.255.255.0’。
IDENTIFIED BY: 通过什么认证的意思,后面跟密码。
password: 账户密码(限定32个字符内)。
ALL PRIVILIEGES: 表示所有权限也可以是(SELECT、INSERT、DELETE、UPDATE、CREATE、DROP、RELOAD、 PROCESS等)其中的一个或多个,多个用“,”分隔。
ON: 中间词(自我理解,表示’在…之上‘)
*.* : 第一个*表所有数据库,第二个*表示所有表(就是可以具体到某个库的某个表)
TO: 表示“给”哪个用户授予这些权限。
WITH GRANT OPTION: 这语句可选,表示当前授权的这个finley用户可以将自己的权限在授予他人。
事实上以上两句可以使用这一句完成:
GRANT ALL PRIVILIEGES ON *.* TO 'finley‘@’localhost‘ IDENTIFIED BY 'password' WITH GRANT OPTION;
注: 这里可不使用 flush privileges;去刷新权限,因为grant语句自带刷新效果,如果是通过直接SQL语句修改mysql表达方式,则需要使用改刷新语句。
2. 删除用户权限
例句: REVOKE ALL ON *.* FROM ’finley‘@'localhost';
查看用户特权: SHOW GRANTS FOR 'finley'@'localhost';
查看用户非特权属性:SHOW CREATE USER ’finley‘@'localhost'\G
3. 删除用户
DROP USER 'finley'@'localhost'; //删除finley用户
4. 修改用户密码
ALTER USER 'finley'@'localhost' IDENTIFIED BY 'password'; //修改用户密码
ALTER USER USER() IDENTIFIED BY 'password'; //修改当前用户密码