创建用户帐号
create user ben identified by '123456';
创建后,MySQL数据库中的user表就新增了一条记录,如下所示:
重新命名用户帐号
如果想要改变帐号的名字,可以通过下面的命令来达到效果:(使用root权限来修改)
rename user ben to bforta;
删除用户账户
drop user bforta;
设置访问权限
在创建用户账户后,必须接着分配访问权限。新创建的用户帐号没有访问权限。它们能登录MySQL,但不能看到数据,不能执行任何数据库操作。
为了赋予用户帐号的权限,使用 show grants for
,如下所示:
show grants for bforta;
输出的结果如下所示:
分析:输出结果显示用户bforta有一个权限usage on ".*".usage表示根本没有权限,所以,此结果表示在任意数据库和任意表上对任何东西没有权限。
PS:用户定义为user@host MySQL的权限用用户名和主机名结合定义。如果不指定主机名,则使用默认的主机名%(授予用户权限而不管主机名)。
为了设置权限,使用grant语句。grant要求你至少给出以下的信息:
- 要授予的权限;
- 被授予访问权限的数据库和表
- 用户名。
以下例子给出grant的用法:
grant select on crashcourse.* to bforta;
此grant允许用户在carshcourse.*(carshcourse数据库中的所有表)上使用select。通过只授权select反问权限,用户bforta对carshcourse数据中的所有数据具有只读反问权限。
撤销权限
与grant的反操作为revoke,用它来撤销特定的权限。
revoke select on carshcourse.* from bforat;
这条revoke语句取消刚赋予用户bforta的select权限。被撤销的访问权限必须存在,否则会出错。
GRANT和REVOKE可在几个层次上控制访问权限。
- 整个服务器,使用GRANT ALL和REVOKE ALL;
- 整个数据库,使用ON database.*;
- 特定的表,使用ON database.table;
- 特定的列;
- 特定的存储过程
对于每个权限的写法可以参考《mysql必知必会》28章。
更改口令
为了更改用户口令,可使用set password语句。新口令必须如下加密:
set password for bforta = password('new 123456');
set password更新用户口令,新口令必须专递到password()函数进行加密。
set password还可以用来设置你自己的口令:
set password = pasword('new password');
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。