GRANT CREATE USER
www.2cto.com
ON *.* TO Peter@localhost;
6. 权限的转移和限制
GRANT语句的最后可以使用WITH子句。如果指定为WITH GRANT OPTION,则表示TO子句中指定的所有用户都有把自己所拥有的权限授予其他用户的权利,而不管其他用户是否拥有该权限。
例: 授予David在XS表上的SELECT权限,并允许其将该权限授予其他用户。
GRANT SELECT ON XSCJ.XS
TO David@localhost IDENTIFIED BY '123456'
WITH GRANT OPTION;
可以把这个权限传递给其他用户,这里假设用户Jim已经创建:
GRANT SELECT ON XSCJ.XS TO Jim@localhost;
说明:使用了WITH GRANT OPTION子句后,如果David在该表上还拥有其他权限,他可以将其他权限也授予Jim而不仅限于SELECT。
WITH子句也可以对一个用户授予使用限制,其中,MAX_queries_PER_HOURcount表示每小时可以查询数据库的次数;MAX_connections_PER_HOURcount表示每小时可以连接数据库的次数;MAX_UPDATES_PER_HOURcount表示每小时可以修改数据库的次数。count表示同时连接MySQL的最大用户数。count是一个数值,对于前三个指定,count如果为0则表示不起限制作用。
例: 授予Jim每小时只能处理一条SELECT语句的权限。
GRANT SELECT ON XS TO Jim@localhost
WITH MAX_QUERIES_PER_HOUR1;
7. 收回权限
要从一个用户回收权限,但不从USER表中删除该用户,可以使用REVOKE语句,这条语句和GRANT语句格式相似,但具有相反的效果。要使用REVOKE,用户必须拥有mysql数据库的全局CREATE USER权限或UPDATE权限。
语法格式: REVOKE priv_type[(column_list)] [, priv_type [(column_list)]] ...
ON {表名 | * |*.* | 库名.*}
FROM user [, user] ...
或者: www.2cto.com
REVOKE ALL privileges, GRANT OPTION FROM user [, user] ...
说明:第一种格式用来回收某些特定的权限,第二种格式回收所有该用户的权限。
例: 回收用户David在XS表上的SELECT权限。
REVOKE SELECT ON XS FROM David@localhost;
由于David用户对XS表的SELECT权限被回收了,那么包括直接或间接地依赖于它的所有权限也回收了,在这个例子中,Jim也失去了对XS表的SELECT权限。但以上语句执行之后WITH GRANT OPTION还保留,当再次授予David对于同一个表的表权限时,它会立刻把这个权限传递给Jim。
以下非重点,属于了解内容:(表维护语句)
在一个定义了索引的列上,该列上不同值的数目被称为该索引列的可压缩性,可以使用SHOWINDEX FROM tb_name语句来显示它。
一个索引列的可压缩性不是自动更新的。就是说,用户在某列创建了一个索引,而该列的可压缩性是不会立即计算出来的。这时需要使用ANALYZE TABLE语句来更新它。
语法格式:ANALYZE [LOCAL |NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ...
在MySQL上执行的所有更新都将写入到一个二进制日志文件中。这里如果直接使用ANALYZE TABLE语句,结果数据也会写入日志文件中。如果指定了NO_eriteTO_binlog选项,则关闭这个功能(LOCAL是NO_ERITE_TO_BINLOG的同义词),这样ANALYZETABLE语句也将会更快完成。
例: 更新表XS的索引的可压缩性,并随后显示。
www.2cto.com
ANALYZE TABLE XS;
SHOW INDEX FROM XS;
2. check table 语句
这条语句用来检查一个或多个表是否有错误,只对MyISAM和InnoDB表起作用。 语法格式:
CHECK TABLE tbl_name [, tbl_name] ...[option] ...
其中,option为:
QUICK | FAST | MEDIUM | EXTENDED |CHANGED
说明:
使用该语句有多个选项。
● quick:不扫描行,不检查错误的链接,这是最快的方法。
● fast:检查表是否已经正确关闭。
● changed:检查上次检查后被更改的表,以及没有被正确关闭的表。
● medium:扫描行,以验证被删除的链接是有效的。也可以计算各行的关键字校验和,并使用计算出的校验和验证这一点。
● extended:对每行的所有关键字进行全面的关键字查找。这可以确保表是100%一致的,但是花的时间较长。
例: 检查XS表是否正确。
CHECK TABLE XS;
3. checksum table 语句
对于数据库中的每一个表,都可以使用CHECKSUM TABLE语句获得一个校验和。 语法格式:
CHECKSUM TABLE tbl_name [, tbl_name]... [ QUICK | EXTENDED ]
说明:如果表是MyISAM表,如果指定了QUICK,则报告表校验和,否则报告NULL。指定EXTENDED则表示无论表是否是MyISAM表,都只计算检验和。
www.2cto.com
4. optimize table 语句
如果用户不断地使用DELETE、INSERT和UPDATE语句更新一个表,那么表的内部结构就会出现很多碎片和未利用的空间。这时可以使用OPTIMIZE TABLE语句来重新利用未使用的空间,并整理数据文件的碎片。OPTIMIZE TABLE语句只对MyISAM、BDB和InnoDB表起作用。
语法格式: OPTIMIZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name[, tbl_name] ...
例: 优化XS表。
5. repair table 语句
如果一个表或索引已经损坏,可以使用REPAI