Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3401347
  • 博文数量: 534
  • 博客积分: 11595
  • 博客等级: 上将
  • 技术积分: 5785
  • 用 户 组: 普通用户
  • 注册时间: 2006-12-22 17:00
文章分类

全部博文(534)

文章存档

2015年(4)

2014年(27)

2013年(15)

2012年(38)

2011年(36)

2010年(85)

2009年(63)

2008年(142)

2007年(124)

分类: Mysql/postgreSQL

2008-11-10 18:04:20

1.系统数据库mysql
mysql内置了一个系统数据库mysql,其中包含存放着权限系统所需要的数据的授权表。
mysql数据库中用于权限的授权表主要包括user,db,host,tables_priv,column_priv
2.mysql数据库权限
3.mysql权限系统的工作原理
对用户身份进行验证并授予其相应的操作权限,这一过程包括2个阶段,即连接验证和请求验证阶段。
(1) 连接验证
检查用户是否被允许连接到mysql服务器
需要使用系统数据库mysql中的user表的host,user,password共3个范围字段
(2) 请求验证
检查用户所发出的每一个对于数据库的操作请求,以确定用户是否具有足够的权限来执行这一操作。
验证请求时可能会用到数据库mysql中user,db,host,tables_priv,columns_priv表的范围字段和权限字段
user表的范围字段用于决定接受或拒绝连接,对于接受的连接,相应的字段将定义用户的全局权限.
db,host表授权用户对特定数据库的操作权限.
tables_priv和columns_priv作用类似db表,除了对数据库授权外,还可以对表和列进行授权,更细致灵活
reload,shutdown等管理权限,仅在user表中被指定.
file权限也仅在user表中指定.
4.连接mysql服务器
mysql [-h hostname] [-u username] [-p password] [database]
5.mysql的初始权限
6.设置mysql超级用户root的口令
mysqladmin -uroot -p password 123456
update mysql.user set password=password('123456') where user='root';
flush privileges
7.grant和revoke语句
grant用于授予用户权限
grant '用户权限' on '权限对象' to '被设置权限用户' identified by '用户口令' with grant option(该用户有授予其他用户权限)
eg:添加一个可以从本地主机或任意主机连接到mysql服务器的超级用户crq,连接时口令crqpass
grant all on *.* to | } identified by 'crqpass' with grant option;
eg:添加用户user1,授予sales库中的employee表的select和insert权限
grant select,insert on sales,employee to identified by 'user1pass';
revoke用于撤销用户权限
revoke '用户权限' on '权限对象' from '被设置权限用户'
eg:撤销user1的insert权限
revoke insert on sales.employee from ;
8.查看用户创建时的权限

show grants for 用户名;

用户名格式:用户名或用户名@'localhost'

阅读(1708) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~