文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>MySQL 用户权限管理

MySQL 用户权限管理

时间:2010-10-26  来源:haiquan517

 

一.        用户权限管理

 

1.  匿名帐号指定密码

  ①.Mysql –u root

      SET PASSWORD FOR ‘’@’localhost’= PASSWORD(‘newpwd’);

 

  ②.Mysql –u root

      UPDATE mysql.user SET Password= PASSWORD(‘newpwd’) where user=’’;

      Flush privileges;

 

2.   删除匿名帐户

   ①.Mysql –u root

       Delete from mysql.user where user=’’;

       Flush privileges;

   ②.Mysql> drop user ‘’@’localhost’;

 

3.   Root帐号指定密码

①.Mysql –u root

Set password for ‘root’@’localhost’=password(‘newpwd’);

 

②.Mysqladmin –u root password “newpwd”

 

③.Mysql –u root

    Update mysql.user set password=password(‘newpwd’) where user= ‘root’;

    Flush privileges;

 

4.  Mysql 授权表说明:

   · user表范围列决定是否允许或拒绝到来的连接。对于允许的连接,user表授予的权限指出用户的全局(超级用户)权限。这些权限适用于服务器上的all数据库。

 

· db表范围列决定用户能从哪个主机存取哪个数据库。权限列决定允许哪个操作。授予的数据库级别的权限适用于数据库和它的表。

 

· 当你想要一个给定的db表行应用于若干主机时,db和host表一起使用。例如,如果你想要一个用户能在你的网络从若干主机使用一个数据库,在用户的db表行的Host值设为空值,然后将那些主机的每一个移入host表。这个机制详细描述在。

注释:host表不受GRANT和REVOKE语句的影响。大多数MySQL安装根本不需要使用该表。

 

· tables_priv和columns_priv表类似于db表,但是更精致:它们在表和列级应用而非在数据库级。授予表级别的权限适用于表和所有它的列。授予列级别的权限只适用于专用列。

 

· procs_priv表适用于保存的程序。授予程序级别的权限只适用于单个程序。

 

 

5.  查看用户权限命令:show grants

检查Host和User值分别为pc84.example.com和bob的账户所授予的权限:

Show grants for ‘bob’@’pc84.example.com’;

 

6.  进行权限分配时,将按照user-db-tables_priv-columns_priv的顺序进行权限分配。

 

7.  要想找出服务器用来鉴定你的账户,使用CURRENT_USER()函数:

Select CURRENT_USER()

 

8.   使用Grant 创建新帐号:

  ·  Grant all privileges on *.* to ‘monty’@’localhost’ identified by ‘some_pass’ with grant option;

    新建一个monty帐号,密码为some_pass,并且只允许从本地连接,具有完全权限

 

  ·  Grant all privileges on *.* to ‘monty’@’%’ identified by ‘some_pass’ with grant option;

     新建一个monty帐号,密码为some_pass,并且允许从任何机器连接,具有完全权限

 

  ·  Grant reload process on *.* to ‘admin’@’localhost’;

     一个账户有用户名admin,没有密码。该账户只用于从本机连接。授予了RELOAD和PROCESS管理权限

 

·    Grant usage on *.* to ‘dummy’@’localhost’;

一个账户有用户名dummy,没有密码。该账户只用于从本机连接。未授予权限

 

9.  创建3个帐户,允许它们访问专用数据库。每个帐户的用户名为custom,密码为obscure

 

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访问。

 

 

10.           限制帐户资源

   ①.例如,要想只以限制方式创建可以访问customer数据库的新账户,执行该语句:

Mysql> grant all on customer.* to ‘chen’@’localhost’

   -> identified by ‘password’

   -> WITH MAX_QUERIES_PER_HOUR 20

   -> MAX_UPDATES_PER_HOUR 10

   -> MAX_CONNECTIONS_PER_HOUR 5

   -> MAX_USER_CONNECTIONS 2;

 

  ②.要想设置或更改已有账户的限制,在全局级别使用GRANT USAGE语句(在*.*)。下面的语句可以将francis的查询限制更改为100:

mysql> GRANT USAGE ON *.* TO 'chen'@'localhost'

-> WITH MAX_QUERIES_PER_HOUR 100;

 

  ③.要想取消已有限制,将该值设置为零。例如,要想取消francis每小时可以连接的次数的限制,使用该语句:

mysql> GRANT USAGE ON *.* TO 'francis'@'localhost'

-> WITH MAX_CONNECTIONS_PER_HOUR 0;

 

11. 设置账户密码

 ①. 使用mysqladmin 命令指定:

Mysqladmin –u user_name –h host_name password “newpwd”

 

 ②.使用set password 语句指定:

Mysql> set password for ‘chen’@’%’ = PASSWORD(‘newpwd’);

 

 ③.使用grant usage语句指定,并且不影响账户当前的权限:

     Mysql> grant usage on *.* to ‘chen’@’%’ identified by ‘newpwd’;

12.删除帐号权限:

Revoke select on chen.*  from quan;

删除quan这个帐号select权限从chen数据库

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载