WEB开发网
开发学院数据库MySQL MYSQL教程:检查数据表和修复数据表 阅读

MYSQL教程:检查数据表和修复数据表

 2009-04-06 11:18:01 来源:WEB开发网   
核心提示:MySQL服务器通过权限表来控制用户对数据库的访问,权限表存放在mysql数据库里,MYSQL教程:检查数据表和修复数据表,由mysql_install_db脚本初始化,这些权限表分别user,尽量不要把该权限授予普通用户,并且不要以root用户来运行MySQL服务器,db,table_priv

MySQL服务器通过权限表来控制用户对数据库的访问,权限表存放在mysql数据库里,由mysql_install_db脚本初始化。这些权限表分别user,db,table_priv,columns_priv和host。下面分别介绍一下这些表的结构和内容:

user权限表:记录允许连接到服务器的用户帐号信息,里面的权限是全局级的。

db权限表:记录各个帐号在各个数据库上的操作权限。

table_priv权限表:记录数据表级的操作权限。

columns_priv权限表:记录数据列级的操作权限。

host权限表:配合db权限表对给定主机上数据库级操作权限作更细致的控制。这个权限表不受GRANT和REVOKE语句的影响。

大家注意到,以上权限没有限制到数据行级的设置。在MySQL只要实现数据行级控制就要通过编写程序(使用GET-LOCK()函数)来实现。

MySQL的版本很多,所以权限表的结构在不同版本间会有不同。如果出现这种情况,可用mysql_fix_privilege_tables脚本来修正。运行方式如下:

% mysql_fix_privilege_tables rootpassword            #这里要给出MySQL的root用户密码

最好一下子升级到MySQL 4.0.4版本,因为4.0.2和4.0.3的db表没有Create_tmp_table_priv和Lock_tables_priv权限。

MySQL的权限表定义了两部份内容,一个部份定义权限的范围,即谁(帐户)可以从哪里(客户端主机)访问什么(数据库、数据表、数据列);另一部份定义权限,即控制用户可以进行的操作。下面是一些常用的权限介绍,可直接在GRANT语句中使用。

CREATE TEMPORARY TABLES,允许创建临时表的权限。

EXECUTE,允许执行存储过程的权限,存储过程在MySQL的当前版本中还没实现。

FILE,允许你通过MySQL服务器去读写服务器主机上的文件。但有一定限制,只能访问对任何用户可读的文件,通过服务器写的文件必须是尚未存在的,以防止服务器写的文件覆盖重要的系统文件。尽管有这些限制,但为了安全,尽量不要把该权限授予普通用户。并且不要以root用户来运行MySQL服务器,因为root用户可在系统任何地方创建文件。

1 2 3  下一页

Tags:MYSQL 教程 检查

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