以root连接到服务器上后,可以添加新账户。下面的语句使用GRANT来设置四个新账户:
mysql>GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost'
->IDENTIFIED BY 'some_pass' WITH GRANT OPTION;
mysql>GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%'
->IDENTIFIED BY 'some_pass' WITH GRANT OPTION;
mysql>GRANT RELOAD,PROCESS ON *.* TO 'admin'@'localhost';
mysql>GRANT USAGE ON *.* TO 'dummy'@'localhost';
用GRANT语句创建的账户有下面的属性:
· 其中两个账户有相同的用户名monty和密码some_pass。两个账户均为超级用户账户,
具有完全的权限可以做任何事情。一个账户 ('monty'@'localhost')只用于从本机连接时。
另一个账户('monty'@'%')可用于从其它主机连接。请注意monty的两个账户必须能从任何主机以monty连接。
没有localhost账户,当monty从本机连接时,mysql_install_db创建的localhost的匿名用户账户将占先。
结果是,monty将被视为匿名用户。原因是匿名用户账户的Host列值比'monty'@'%'账户更具体,
这样在user表排序顺序中排在前面。(user表排序的讨论参见5.7.5节,“访问控制, 阶段1:连接核实”)。
· 一个账户有用户名admin,没有密码。该账户只用于从本机连接。授予了RELOAD和PROCESS管理权限。这些权限允许admin用户执行mysqladmin reload、mysqladmin refresh和mysqladmin flush-xxx命令,以及mysqladmin processlist。未授予访问数据库的权限。你可以通过GRANT语句添加此类权限。
· 一个账户有用户名dummy,没有密码。该账户只用于从本机连接。未授予权限。通过GRANT语句中的USAGE权限,你可以创建账户而不授予任何权限。它可以将所有全局权限设为'N'。假定你将在以后将具体权限授予该账户。
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
-> ON bankaccount.*
-> TO 'custom'@'localhost'
-> IDENTIFIED BY 'obscure';
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
-> ON expenses.*
-> TO 'custom'@'whitehouse.gov'
-> IDENTIFIED BY 'obscure';
mysql>GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
-> ON customer.*
-> TO 'custom'@'server.domain'
-> IDENTIFIED BY 'obscure';
这3个账户可以用于:
· 第1个账户可以访问bankaccount数据库,但只能从本机访问。
· 第2个账户可以访问expenses数据库,但只能从主机whitehouse.gov访问。
· 第3个账户可以访问customer数据库,但只能从主机server.domain访问。
posted on 2007-09-03 16:24
crazy 阅读(872)
评论(0) 编辑 收藏 所属分类:
mysql数据库