用SQL建立MySQL用户和相应权限的方法

好像phpMyADMIN还没有这个功能,但可以用phpMyAdmin通过输入语句的方法建立用户,或者一般的图形界面的SQL管理程序也可以建立和编辑用户.
这里只说使用GRANT语句的方法,当然还有直接修改MySQL表的方法,不过很麻烦,用的人不多~
前提是有MySQL root权限
例子:建立另一个超级用户(所有权限)的方法
GRANT ALL ON *.* TO username@localhost IDENTIFIED BY ‘password’ WITH GRANT OPTION

localhost是主机名,也可以是IP,用于限定这个用户是否可以远程连接.还可以用通配符”%”,比如%.im286.com,或者202.97.224.%
WITH GRANT OPTION用于指定该用户可以使用GRANT语句将权限授予别人/没有这个选项就不可以
*.* 中第一个星星是数据库名(*为所有数据库),第二个星星是表名(*为前面数据库下的所有表)
ALL 是指全部语句的操作权限(经常看到虚拟主机等的用户没有DROP权限,就是这里做了手脚)

语法大概就是这样吧.

例子:建立一个只能可以操作数据库im286的账号im286并可以远程连接,但不能使用GRANT.
GRANT ALL ON im286.* TO im286 IDENTIFIED BY ‘password’
(这就是一般免费空间或虚拟主机上的用户数据库权限,但没有远程连接)

例子:建立一个只能使用SELECT,INSERT,CREATE,DELETE,UPDATE语句的用户,不能远程连接
GRANT SELECT,INSERT,DELETE,UPDATE,CREATE ON dbname.* TO username@localhost IDENTIFIED BY ‘password’;

已建立的用户,可以用REVOKE语句收回他的权限,然后用phpMyAdmin打开mysql->user,找到那个用户名,点左边第二个的删除.用户就被完全删除了.

另外上面的dbname 为数据库名 username 为用户名 password 为密码 不能用中文

如果你直接修改相关user或priv表,可以看到的权限更多,比如关闭服务器的权限,线程控制权限,reset权限等(不说了,呵呵)

运行这些语句的方法就是,在phpMyAdmin里,找一个可以贴代码的框,把代码贴进去运行就行了.当然也可以做个php小程序

原理:
mysql_connect(…);
mysql_select_db…();
mysql_query(“GRANT ….”);

发表评论

电子邮件地址不会被公开。 必填项已用*标注