ASP源码.NET源码PHP源码JSP源码JAVA源码DELPHI源码PB源码VC源码VB源码Android源码
当前位置:首页 >> 数据库 >> MySql >> mysql的用户管理和权限管理(访问控制)

mysql的用户管理和权限管理(访问控制)(2/3)

来源:网络整理     时间:2016-01-06     关键词:

本篇文章主要介绍了"mysql的用户管理和权限管理(访问控制)",主要涉及到方面的内容,对于MySql感兴趣的同学可以参考一下: 前言:MySQL服务器的安全基础是:用户应该对他们的需要的数据具有适当的访问权,既不能多也不能少。换句话说,用户不能对过多的数据具有过多的访问权。 例如,我们...

3、设置访问权限:

在创建完用户之后,必须接着分配访问权限,新创建的用户账号是没有访问权限的,他们能够登录MYSQL,但是不能看到数据,不能执行任何数据库的操作。

为了能够看到赋予给用户的权限,可以使用SHOW GRANTS FOR语句:

SHOW GRANTS FOR zhongjin;

mysql的用户管理和权限管理(访问控制)

输出结果显示用户zhongjin有一个权限 USAGE ON .。USAGE其实表示“根本没有权限”(尽管这很不直观),因此,此结果表示在任意数据库和任意表上对任何东西没有权限(*表示任意,某个数据库的某个表用: 数据库名.表名)

还有 zhongjin@% 是什么鬼?用户名定义为 user@root MySQL的权限用用户名和主机名结合定义,如果不使用主机名,则使用默认的主机名 %(授予用户访问权限而不管主机名)。
mysql的用户管理和权限管理(访问控制)

为了给用户授予权限,我们可以用 GRANT 语句,GRANT要求你至少给出以下几点信息:
1. 要授予的权限;
2. 倍授予访问权限的数据库或表;
3. 用户名(给谁分配);
例子:

GRANT SELECT ON test.* TO zhongjin;

此GRANT允许用户在test.*(test数据库下的任意表上)使用SELECT。通过只授予SELECT访问权限,用户zhongjin对test数据库只有只读的访问权限。

SHOW GRANTS FOR zhongjin;

返回:
mysql的用户管理和权限管理(访问控制)

每个GRANT添加或更新用户的一个权限,但是怎么给用户取消某个权限呢?我们就要用到REVOKE语句了。REVOKE语句撤销特定的权限:

REVOKE SELECT ON test.* FROM zhongjin;

结果发现:
mysql的用户管理和权限管理(访问控制)

之前的SELECT权限没有了。证明REVOKE语句起作用了。
注意:被撤销的访问权限必须存在,否则会出错。

GRANT 和 REVOKE 可在几个层次上控制访问权限:
- 在整个服务器,使用 GRANT ALL 和 REVOKE ALL;
- 在整个数据库,使用 ON database.*;
- 特定的表,使用 ON database.table;
- 特定的列;
- 特定的存储过程。

可以管理的权限当然有一大堆,大家可以访问
http://blog.chinaunix.net/uid-167175-id-3472332.html
了解更多的权限列表。

4、更改用户密码:

为了更改用户的密码,可使用 SET PASSWORD 语句:

SET PASSWORD FOR zhongjin = Password('456789');

SET PASSWORD 更新用户密码,新密码必须传到Password()函数中进行加密。

SET PASSWORD 还可以用来设置你自己的密码:

相关图片

相关文章