mysql 权限系统
程序员文章站
2022-05-08 17:57:21
...
mysql的所有权限都保存在
[list]
[*]mysql.user
[*]mysql.db
[*]mysql.host
[*]mysql.table_priv
[*]mysql.column_priv
[/list]
这几个表的数据会在mysql启动时加载到内存
可以用update修改这些表 修改之后要用
但是不推荐这样做 更优雅的方式是 用 grant, revoke, drop user来修改权限信息
[b]授权与收权[/b]
授权:授予用户xuly,select和update所有数据库对象的权限
收权:
rovoke
权限作用域
用grant授权时有5个作用域,从大到小依次为
[list]
[*]global: 用*.*表示
[*]database 用database.*表示
[*]table 用database.table1表示
[*]column 用grant select(id, name) on database.table1表示
[*]routine 只作用于procedure和function 用法与table类似
[/list]
示例
授权后会在相应的数据表中插入数据 如下表
[list]
[*]global mysql.user
[*]database mysql.db
[*]table mysql.table_priv
[*]column mysql.column_priv
[*]routine ????
[/list]
[list]
[*]mysql.user
[*]mysql.db
[*]mysql.host
[*]mysql.table_priv
[*]mysql.column_priv
[/list]
这几个表的数据会在mysql启动时加载到内存
可以用update修改这些表 修改之后要用
flush privileges
命令通知mysql 重新加载权限信息但是不推荐这样做 更优雅的方式是 用 grant, revoke, drop user来修改权限信息
[b]授权与收权[/b]
授权:授予用户xuly,select和update所有数据库对象的权限
grant select,update ON *.* TO 'xuly'@'localhost'
收权:
rovoke
权限作用域
用grant授权时有5个作用域,从大到小依次为
[list]
[*]global: 用*.*表示
[*]database 用database.*表示
[*]table 用database.table1表示
[*]column 用grant select(id, name) on database.table1表示
[*]routine 只作用于procedure和function 用法与table类似
[/list]
示例
grant select,delete ON bbs.* TO 'xuly'@'%'
grant select,delete ON bbs.post TO 'user1'@'%'
授权后会在相应的数据表中插入数据 如下表
[list]
[*]global mysql.user
[*]database mysql.db
[*]table mysql.table_priv
[*]column mysql.column_priv
[*]routine ????
[/list]