(以下操作都是以root身份登陆进行grant授权,以p1@localhost身份登陆执行各种命令。)
1. usage
连接(登陆)权限,建立一个用户,就会自动授予其usage权限(默认授予)。
mysql>grant usage on *.* to ‘p1′@’localhost’ identified by ‘123′
该权限只能用于数据库登陆,不能执行任何操作;且usage权限不能被回收,也即REVOKE用户并不能删除用户。
2. select
必须有select的权限,才可以使用select table
mysql>grant select on pyt.* to ‘p1′@’localhost’
mysql>select * from shop
3. create
必须有create的权限,才可以使用create table
mysql>grant create on pyt.* to ‘p1′@’localhost’
4. create routine
必须具有create routine的权限,才可以使用{create |alter|drop} {procedure|function}
mysql>grant create routine on pyt.* to ‘p1′@’localhost’
当授予create routine时,自动授予EXECUTE, ALTER ROUTINE权限给它的创建者:
mysql>show grants for ‘p1′@’localhost’
%代表任何客户机都可以连接localhost代表只可以本机连接
访问控制, 阶段1:连接核实
当你试图连接MySQL服务器时,服务器基于你的身份以及你是否能通过供应正确的密码验证身份来接受或拒绝连接。如果不是,服务器完全拒绝你的访问,否则,服务器接受连接,然后进入阶段2并且等待请求。
你的身份基于2个信息:
你从那个主机连接
你的MySQL用户名
身份检查使用3个user表(Host, User和Password)范围列执行。服务器只有在user表记录的Host和User列匹配客户端主机名和用户名并且提供了正确的密码时才接受连接。
在user表Host值的指定方法:
Host值可以是主机名或IP号,或'localhost'指出本地主机。
你可以在Host列值使用通配符字符“%”和“_”。
Host值'%'匹配任何主机名,空Host值等价于'%'。它们的含义与LIKE操作符的模式匹配操作相同。例如,'%'的Host值与所有主机名匹配,而'%.mysql.com'匹配mysql.com域的所有主机。
· 对于指定为IP号的Host值,你可以指定一个网络掩码,说明使用多少位地址位来评比网络号。例如:
·mysql>GRANT ALL PRIVILEGES ON db.*
·->->TO david@'192.58.197.0/255.255.255.0'
允许david从任何客户端用IP号client_ip来连接,下面的条件为真:
client_ip &netmask = host_ip
That is, for the GRANT statement just shown:
client_ip &255.255.255.0 = 192.58.197.0
满足该条件并可以连接MySQL服务器的IP号的范围为192.58.197.0到19
show grants for 你的用户比如:show grants for root@'localhost'Grant 用法GRANT USAGE ON *.* TO 'discuz'@'localhost' IDENTIFIED BY PASSWORD '*C242DDD213BE9C6F8DA28D49245BF69FC79A86EB'
GRANT ALL PRIVILEGES ON `discuz`.* TO 'discuz'@'localhost'
我先按我的理解解释一下上面两句的意思
建立一个只可以在本地登陆的 不能操作的用用户名 discuz 密码为 ***** 已经加密了的
然后第二句的意思是 ,给这个discuz用户操作discuz数据库的所有权限使用GRANTGRANT命令用来建立新用户,指定用户口令并增加用户权限。其格式如下:
mysql GRANT <privileges ON <what
- TO <user [IDENTIFIED BY <password]
- [WITH GRANT OPTION]
正如你看到的源码天空
,在这个命令中有许多待填的内容。让我们逐一地对它们进行介绍,并最终给出一些例子以让你对它们的协同工作有一个了解。
<privileges是一个用逗号分隔的你想要赋予的MySQL用户权限的列表。你可以指定的权限可以分为三种类型:
数据库/数据表/数据列权限: Alter: 修改已存在的数据表(例如增加/删除列)和索引。
Create: 建立新的数据库或数据表。
Delete: 删除表的记录。
Drop: 删除数据表或数据库。
INDEX: 建立或删除索引。
Insert: 增加表的记录。
Select: 显示/搜索表的记录。
Update: 修改表中已存在的记录。
全局管理MySQL用户权限:
file: 在MySQL服务器上读写文件。
PROCESS: 显示或杀死属于其它用户的服务线程。
RELOAD: 重载访问控制表,刷新日志等。
SHUTDOWN: 关闭MySQL服务。
特别的权限:
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)