原创 MySQL的用户权限收藏

新一篇: Comodo和Dev-C++是冤家? | 旧一篇: Mambo边栏添加Adsense的方法

MySQL可以为不同的用户分配严格的、复杂的权限。这些操作大多都可以用SQL指令Grant(分配权限)和Revoke(回收权限)来实现。 Grant可以把指定的权限分配给特定的用户,如果这个用户不存在,则会创建一个用户。

GRANT

Grant的常用格式:
GRANT privileges [columns]
ON item
TO user_name [IDENTIFIED BY 'password']
[REQUIRE ssl_options]
[WITH [GRANT OPTION | limit_options]]

ssl_options代表一些和SSL相关的选项。WITH GRANT OPTION表示允许指定的用户向别人授予他所拥有的权限。另外还可以用如下的WITH子句:

  • MAX_QUERIES_PER_HOUR n
  • MAX_UPDATES_PER_HOUR n
  • MAX_CONNECTIONS_PER_HOUR n

分别指定这个用户每小时最多能执行的查询数、更新数和连接数。

比较重要的是priveleges(权限)。

普通用户的权限
权限 应用于 描述
SELECT 表,列 允许用户从表中选择行(记录)
INSERT 表,列 允许用户在表中插入新行
UPDATE 表,列 允许用户修改现存表里行中的值
DELETE 允许用户删除现存表的行
INDEX 允许用户创建和拖动特定表索引
ALTER 允许用户改变现存表的结构。例如,可添加列、重命名列或表、修改列的数据类型
CREATE 数据库,表 允许用户创建新数据库或表。如果在GRANT中指定了一个特定的数据库或表,他们只能够创建该数据库或表,即他们必须首先删除(Drop)它
DROP 数据库,表 允许用户拖动(删除)数据库或表

管理员权限

权限 描述
CREATE TEMPORARY TABLES 允许管理员在CREATE TABLE语句中使用TEMPORARY关键字
FILE 允许将数据从文件读入表,或从表读入文件
LOCK TABLES 允许使用LOCK TABLES语句
PROCESS 允许管理员查看属于所有用户的服务器进程
RELOAD 允许管理员重新载入授权表、清空授权、主机、日志和表格
REPLICATION CLIENT 允许在复制主机(Master)和从机(Slave)上使用SHOW STATUS
REPLICATION SLAVE 允许复制从服务器连接到主服务器
SHOW DATABASES 允许使用SHOW DATABASES语句查看所有的数据库列表。没有这个权限,用户只能看到他们能够看到的数据库
SHUTDOWN 允许管理员关闭MySQL服务器
SUPER 允许管理员关闭属于任何用户的线程

 

特别的权限

权限 描述
ALL(或ALL PREVILEGES) 授予所有权限
USAGE 不授予权限。这将创建一个用户并允许他登录,但不允许

REVOKE

REVOKE和作用和GRANT相反,语法格式为:
REVOKE privileges [(columns)]
ON item
FROM user_name

 Example

创建用户Bob,密码为“bob”,但不给他任何权限:
GRANT usage on * to Bob identified by 'bob';

授予Bob在books数据库中的查询和插入权限:
GRANT select, insert on books.* to  Bob;

取消Bob在books数据库中的所有权限:
REVOKE all on books.* from Bob;

注:需要指出的是,REVOKE all...仅仅是回收用户的权限,并不删除用户。在MySQL中,用户信息存放在mysql.User中。MySQL可以通过DROP USER来彻底删除一个用户,其用法为:
DROP USER user_name;

例如,要删除用户Bob,可以用:
DROP USER Bob;

发表于 @ 2007年09月17日 21:05:00|评论(loading...)|编辑|收藏

新一篇: Comodo和Dev-C++是冤家? | 旧一篇: Mambo边栏添加Adsense的方法

评论:没有评论。

发表评论  


登录
Csdn Blog version 3.1a
Copyright © ggggqqqqihc