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'
阅读(1753) | 评论(0) | 转发(0) |