MySQL
的用户权限管理方法
MySQL
可以为不同的用户分配严格的、复杂的权限。这些操作大多都可以用
SQL
指令
Grant
(分配权限)和
Revoke
(回收权限)来实现。
Grant
可以把指定
的权限分配给特定的用户,
如果这个用户不存在,
则会创建一个用户。
GRANTGrant
的
常
用
格
式
:
GRANTprivileges[columns]ONitemTOuser_name[IDENTIFIEDBY’password’][R
EQUIREssl_options][WITH[GRANTOPTION|limit_options]]ssl_options
代表一
些和
SSL
相关的选项。
WITHGRANTOPTION
表示允许指定的用户向别人授予他所拥
有
的
权
限
。
另
外
还
可
以
用
如
下
的
WITH
子
句
:
MAX_QUERIES_PER_HOURnMAX_UPDATES_PER_HOURnMAX_CONNECTIONS_PER_HOURn
分别指定这个用户每小时最多能执行的查询数、
更新数和连接数。
比较重要的是
priveleges
(权限)
。
普通用户的权限权限应用于描述
SELECT
表,
列允许用户从
表中选择行(记录)
INSERT
表,列允许用户在表中插入新行
UPDATE
表,列允许
用户修改现存表里行中的值
DELETE
表允许用户删除现存表的行
INDEX
表允许用
户创建和拖动特定表索引
ALTER
表允许用户改变现存表的结构。
例如,
可添加列、
重命名列或表、修改列的数据类型
CREATE
数据库,表允许用户创建新数据库或
表。
如果在
GRANT
中指定了一个特定的数据库或表,
他们只能够创建该数据库或
表,即他们必须首先删除(
Drop
)它
DROP
数据库,表允许用户拖动(删除)数
据
库
或
表
管
理
员
权
限
权
限
描
述
CREATETEMPORARYTABLES
允
许
管
理
员
在
CREATETABLE
语句中使用
TEMPORARY
关键字
FILE
允许将数据从文件读入表,或
从表读入文件
LOCKTABLES
允许使用
LOCKTABLES
语句
PROCESS
允许管理员查看属
于所有用户的服务器进程
RELOAD
允许管理员重新载入授权表、
清空授权、
主机、
日志和表格
REPLICATIONCLIENT
允许在复制主机(
Master
)和从机(
Slave
)上
使
用
SHOWSTATUSREPLICATIONSLAVE
允
许
复
制
从
服
务
器
连
接
到
主
服
务
器
SHOWDATABASES
允许使用
SHOWDATABASES
语句查看所有的数据库列表。
没有这个
权限,用户只能看到他们能够看到的数据库
SHUTDOWN
允许管理员关闭
MySQL
服
务器
SUPER
允许管理员关闭属于任何用户的线程特别的权限权限描述
ALL
(或
ALLPREVILEGES
)授予所有权限
USAGE
不授予权限。这将创建一个用户并允许他
登
录
,
但
不
允
许
REVOKEREVOKE
和
作
用
和
GRANT
相
反
,
语
法
格
式
为
:
REVOKEprivileges[(columns)]ONitemFROMuser_nameExample
创建用户
Bob
,密
码为“bob”,但不给他任何权限:GRANTusageon*toBobidentifiedby’bob’;
授
予
Bob
在
books
数
据
库
中
的
查
询
和
插
入
权
限
:
GRANTselect,insertonbooks.*toBob;
取消
Bob
在
books
数据库中的所有权限: