WEB开发网
开发学院数据库MSSQL Server MySQL中文参考手册7(MySQL存取权限系统)grant设置... 阅读

MySQL中文参考手册7(MySQL存取权限系统)grant设置密码password

 2007-11-11 11:38:16 来源:WEB开发网   
核心提示: 6.5 MySQL(和PHP搭配之最佳组合)提供的权限权限信息用user、db、host、tables_priv和columns_priv表被存储在MySQL(和PHP搭配之最佳组合)数据库中(即在名为MySQL(和PHP搭配之最佳组合)的数据库中),在MySQL(和PHP搭配之最佳组合)启动时和在6.9 权限修改何


6.5  MySQL(和PHP搭配之最佳组合)提供的权限
权限信息用user、db、host、tables_priv和columns_priv表被存储在MySQL(和PHP搭配之最佳组合)数据库中(即在名为MySQL(和PHP搭配之最佳组合)的数据库中)。在MySQL(和PHP搭配之最佳组合)启动时和在6.9 权限修改何时生效所说的情况时,服务器读入这些数据库表内容。 

本手册所用的涉及由MySQL(和PHP搭配之最佳组合)提供的权限名称显示在下表,还有在授权表中每个权限的表列名称和每个权限有关的上下文: 

权限      列        上下文 
select   Select_priv      表 
insert   Insert_priv      表 
update   Update_priv      表 
delete   Delete_priv      表 
index    Index_priv      表 
alter    Alter_priv      表 
create   Create_priv     数据库、表或索引 
drop    Drop_priv      数据库或表 
grant    Grant_priv     数据库或表 
references References_priv   数据库或表 
reload   Reload_priv     服务器管理 
shutdown  Shutdown_priv    服务器管理 
process   Process_priv    服务器管理 
file    File_priv      在服务器上的文件存取 

select、insert、update和delete权限允许你在一个数据库现有的表上实施操作。 

SELECT语句只有在他们真正从一个表中检索行是才需要select权限,你可以执行某个SELECT语句,甚至没有任何到服务器上的数据库里的存取任何东西的许可。例如,你可使用MySQL(和PHP搭配之最佳组合)客户作为一个简单的计算器: 

MySQL(和PHP搭配之最佳组合)> SELECT 1+1;
MySQL(和PHP搭配之最佳组合)> SELECT PI()*2;

index权限允许你创建或抛弃(删除)索引。 

alter权限允许你使用ALTER TABLE。 

create和drop权限允许你创建新的数据库和表,或抛弃(删除)现存的数据库和表。 

注意:如果你将MySQL(和PHP搭配之最佳组合)数据库的drop权限授予一个用户,该用户能抛弃存储了MySQL(和PHP搭配之最佳组合)存取权限的数据库! 

grant权限允许你把你自己拥有的那些权限授给其他的用户。 

file权限给予你用LOAD DATA INFILE和SELECT ... INTO OUTFILE语句读和写服务器上的文件,任何被授予这个权限的用户都能读或写MySQL(和PHP搭配之最佳组合)服务器能读或写的任何文件。 

其余的权限用于管理性操作,它使用MySQL(和PHP搭配之最佳组合)admin程序实施。下表显示MySQL(和PHP搭配之最佳组合)admin支配每个管理性权限允许你执行的命令: 

优惠     权限拥有者允许执行的命令 
reload    reload, refresh, flush-privileges, flush-hosts, flush-logs, flush-tables 
shutdown   shutdown 
precess   processlist, kill 

reload命令告诉服务器再读入授权表,refresh命令清洗所有表并打开和关闭记录文件,flush-privileges是reload的一个同义词,其它flush-*命令执行类似refresh的功能,但是范围更有限,并且在某些情况下可能更好用。例如,如果你只是想清洗记录文件,flush-logs比refresh是更好的选择。 

shutdown命令关掉服务器。 

processlist命令显示在服务器内执行的线程的信息。kill命令杀死服务器线程。你总是能显示或杀死你自己的线程,但是你需要process权限来显示或杀死其他用户启动的线程。 

总的说来,只授予权限给需要他们的那些用户是一个好主意,但是你应该在授予某个权限时试验特定的警告: 


  • grant权限允许用户放弃他们的权限给其他用户。2个有不同的权限并有grant权限的用户可以合并权限。 
  • alter权限可以用于通过重新命名表来推翻权限系统。 
  • file权限可以被滥用在服务器上读取任何世界可读(world-readable,即任何人可读)的文件到一张数据库表,然后其内容能用SELECT被存取。 
  • shutdown权限通过终止服务器可以被滥用完全拒绝为其他用户服务, 。 
  • precess权限能被用来察看当前执行的查询的普通文本,包括设定或改变口令查询。 
  • 在MySQL(和PHP搭配之最佳组合)数据库上的权限能被用来改变口令和其他存取权限信息。(口令被加密存储,所以一个恶意的用户不能简单地读取他们。然而,有足够的权限,同一个用户能用不同的一个代替一个口令。) 
    有一些事情你不能用MySQL(和PHP搭配之最佳组合)权限系统做到: 

  • 你不能明显地指定一个给定用户应该被拒绝存取。即,你不能明显地匹配一个用户并且然后拒绝连接。 
  • 你不能指定一个用户有权创建立或抛弃一个数据库中的表,也不能创建或抛弃数据库本身。 


6.6 权限系统工作原理
MySQL(和PHP搭配之最佳组合)权限系统保证所有的用户可以严格地做他们假定被允许做的事情。当你连接一个MySQL(和PHP搭配之最佳组合)服务器时, 你的身份由你从那连接的主机和你指定的用户名来决定,系统根据你的身份和你想做什么来授予权限。 

MySQL(和PHP搭配之最佳组合)在认定身份中考虑你的主机名和用户名字,是因为有很小的原因假定一个给定的用户在因特网上属于同一个人。例如,用户从whitehouse.gov连接的bill不必和从mosoft.com连接bill是同一个人。 MySQL(和PHP搭配之最佳组合)通过允许你区分在不同的主机上碰巧有同样名字用户来处理它:你可以对从whitehouse.gov连接授与bill一个权限集,而为从microsoft.com的连接授予一个不同的权限集。 

MySQL(和PHP搭配之最佳组合)存取控制包含2个阶段: 


  • 阶段1:服务器检查你是否允许连接。 
  • 阶段2:假定你能连接,服务器检查你发出的每个请求。看你是否有足够的权限实施它。例如,如果你从数据库中一个表精选(select)行或从数据库抛弃一个表,服务器确定你对表有select权限或对数据库有drop权限。 

上一页  1 2 3 4 5 6 7  下一页

Tags:MySQL 参考

编辑录入:coldstar [复制链接] [打 印]
赞助商链接