Chinaunix首页 | 论坛 | 博客
  • 博客访问: 74238
  • 博文数量: 38
  • 博客积分: 2540
  • 博客等级: 少校
  • 技术积分: 340
  • 用 户 组: 普通用户
  • 注册时间: 2009-10-10 23:07
文章分类

全部博文(38)

文章存档

2010年(1)

2009年(37)

我的朋友
最近访客

分类: Mysql/postgreSQL

2009-10-10 23:57:54

新建账户:
mysql> GRANT ALL PRIVILEGES ON *.* TO
    ->     IDENTIFIED BY 'monty' WITH GRANT OPTION;  授予用户monty一切权限

mysql> GRANT ALL PRIVILEGES ON *.* TO
    ->     IDENTIFIED BY 'monty' WITH GRANT OPTION;授予用户monty一切权限,服务器不同

mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
    ->     ON menagerie.*
    ->     TO 'custom'@'localhost'
    ->     IDENTIFIED BY 'custom';    授予用户custom对数据库menagerie某些权限

mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
    ->     ON capb.products
    ->     TO
    ->     IDENTIFIED BY 'capb';  授予用户capb对数据库capb的表products某些权限


mysql> GRANT SELECT,UPDATE
    ->     ON cap.products
    ->     TO
    ->     IDENTIFIED BY 'cap';   授予用户cap对数据库cap的表products某些权限

mysql> GRANT USAGE ON *.* TO identified by '5201314';创建用户gxj,但不授予任何权限,相当于空账户。

除了grant语句,还可用insert创建账户,管理员进入mysql后,use mysql,在表user中插入账户信息即可,当你用INSERT创建账户后腰使用FLUSH PRIVILEGES告诉服务器重读授权表。否则,只有重启服务器后更改方会被注意到。使用 GRANT,则不需要使用FLUSH PRIVILEGES。这种方法不推荐,有兴趣的读者可查阅相关资料。

删除账户:
需以如root等管理员权限进入MySQL
mysql>use mysql
mysql>select * from user; //查看所有账户
要删除某个账户,只需删除mysql表user中对应的记录,如删除的用户:
mysql>delete from user where Host='localhost' and User='cap';

账户密码修改:
如root身份的管理员修改其他账户的密码,首先进入mysql,如修改用户cap的密码
mysql>set password for );

还可以在全局级别使用GRANT USAGE语句(在*.*)来指定某个账户的密码而不影响账户当前的权限:
mysql> GRANT USAGE ON *.* TO IDENTIFIED BY '5201314';

一般情况下最好使用上述方法来指定密码,你还可以直接修改user表:
mysql> UPDATE user SET Password = PASSWORD('custom')
·                       -> WHERE Host = 'localhost' AND User = 'custom';
·                mysql> FLUSH PRIVILEGES;

最后一句mysql> FLUSH PRIVILEGES;不可少,否则更改不起作用。

普通用户无权利修改其他用户的密码,但可修改自身的密码,出可采用以上方法外,还可简化,如用户cap修改自身的密码
mysql>set password for );
简化:
mysql>set password=password('5201314');
(修改密码均采用password函数加密。使用grant语句不用password函数,是因为grant语句能够自行加密。)

修改账户名称:
一般来说没必要修改账户名称,当然硬要修改的话也可以,同样只要进入mysql,修改mysql的user表即可,在此不详述。

限制账户资源
在MySQL较高版本中,你可以为具体账户限制下面的服务器资源:

·         账户每小时可以发出的查询数

·         账户每小时可以发出的更新数

·         账户每小时可以连接服务器的次数

创建账户的同时限制账户资源,如:
mysql> GRANT ALL privileges ON cap.* TO
    ->     IDENTIFIED BY '5201314'
    ->     WITH MAX_QUERIES_PER_HOUR 20    //限制每小时查询次数
    ->          MAX_UPDATES_PER_HOUR 10    //限制每小时更新数据库的次数
    ->          MAX_CONNECTIONS_PER_HOUR 5  //限制每小时链接数据库的次数
    ->          MAX_USER_CONNECTIONS 2;     //限制用户同时连接的数量

要想设置或更改已有账户的限制,在全局级别使用GRANT USAGE语句(在*.*)。下面的语句可以将cap的查询限制更改为100:
mysql> GRANT USAGE ON *.* TO
    ->     WITH MAX_QUERIES_PER_HOUR 100;
要想将所有账户当前的记数重设为零,可以执行FLUSH USER_RESOURCES语句。还可以通过重载授权表来重设记数(例如,使用FLUSH PRIVILEGES语句或mysqladmin reload命令)。

阅读(728) | 评论(0) | 转发(0) |
0

上一篇:oracle入门

下一篇:centos安装虚拟机工具

给主人留下些什么吧!~~