您的位置:首页 > 数据库 > MySQL

mysql 授权管理

2014-04-18 12:56 344 查看
本文从创建一个数据库说起:

1,创建一个数据库

CREATE DATABASE IF NOT EXISTS you_dbname DEFAULT CHARSET utf8 CALLATE utf8_general_ci;

2,访问控制介绍:

MySQL 服务器的安全基础是:用户应该对他们需要的数据具有适当的访问权限,既不能多也不能少。换句话说,用户不能对过多的数据具有过多的访问权限。

需要考虑的有以下内容:

多数用户需要对表进行读写,但少数用户甚至需要创建和删除表;

默写用户需要毒镖,但可能不需要更新表;

你可能向允许用户添加数据,但不允许他们删除数据;

某些用户(管理员)可能需要处理用户账号的权限,但多数用户不需要;

你可能像根据用户的登录地点限制对某些功能的访问;

MySQL 的用户信息存储在MySQL的mysql 数据库中

可以通过 以下2个命令来查看所有的用户

use mysql;

select user from user;

创建新用户:

CREATE USER username IDENTIFIED BY 'PASSWD';(为安全起见,一般不建议直接这样操作用户表)[注1]

重新命名一个用户账号

RENAME USER newname TO oldname;

删除用户账号

DROP USER username; //删除用户的账号以及相关的权限,如果使用MySQL5 以前的版本,则不能删除相关权限需要先用revoke 删除账号相关的权限,然后执行该条命令即可。

设置访问权限

创建用户账号之后,必须分配权限访问。否则,新用户无法使用数据库

a, 查看用户的权限

show GRANTS FOR username

b,授权三要素

要授予的权限,被授予权限的数据库和表,用户名

用法实例:

GRANT select ON dbname.* To username;

授权所有用户名为username 的用户查询数据库dbname 下的所有表的权限。

GRANT 的反操作为

REVOKE SELECT ON dbname.* FROM username;

GRANT 和REVOKE 可在以下几个层次上控制访问权限:

整个服务器,使用GRANT ALL和REVOKE ALL;

整个数据库,使用ON database.*;

特定的表 ,使用 ON database.table;

特定的列;

特定的存储过程;

权限列表:







用户授权完成之后并不是立即生效,需要通过执行:

flush privileges;

注1:

  通常采用用户创建和授权同时进行,命令如下

  

GRANT (权限列表) ON db.table TO username@HOSTNAME IDENTIFIDE BY 'PASSWD';

插图和部分内容摘自:《MySQL必知必会》 文章系读书笔记系列。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: