GBase 8a对用户权限的控制方法,grant的使用
GBase论坛官网地址:http://www.gbase8a.com/forum.php?mod=forumdisplay&fid=43
GBase 8a通过grant语句,对用户访问对象进行限制,本文介绍一些简单的概念和用法,来应对业务需求。
语法
对象
语法
grant 权限 on 对象 to 用户
GRANTpriv_type [(column_list)][, priv_type [(column_list)]] ...ON [object_type] priv_levelTO user IDENTIFIED BY [[PASSWORD] [password]] [WITH with_option ...]object_type: TABLE | FUNCTION | PROCEDUREpriv_level: * | *.* | database_name.* |database_name.table_name | table_name | database_name.routine_name
对其中每个部分解释一下
权限
多个权限,可以一次性授权,用逗号分割。 如果是ALL,则代表所有权限(不包括unmask)。
gbase> grant select,insert on testdb.abc to abc;Query OK, 0 rows affected (Elapsed: 00:00:00.00)
权限名字
|
说明
|
对应gbase.user字段
|
SELECT
|
允许使用 SELECT
|
Select_priv
|
INSERT
|
允许使用 INSERT
|
Insert_priv
|
UPDATE
|
允许使用 UPDATE
|
Update_priv
|
DELETE
|
允许使用 DELETE
|
Delete_priv
|
CREATE
|
允许使用 CREATE TABLE
|
Create_priv
|
DROP
|
允许使用 DROP TABLE
|
Drop_priv
|
RELOAD
|
允许使用 FLUSH
|
Reload_priv
|
SHUTDOWN
|
允许使用 gbaseadmin shutdown
|
Shutdown_priv
|
PROCESS
|
允许使用 SHOW FULL PROCESSLISTS
|
Process_priv
|
FILE
|
允许使用 SELECT…FROM TABLE_NAME INTO OUTFILE、LOAD DATA 等
|
File_priv
|
GRANT OPTION
|
允许授予权限
|
Grant_priv
|
REFERENCES
|
不支持
|
References_priv
|
INDEX
|
允许使用 CREATE INDEX 和 DROP INDEX
|
Index_priv
|
ALTER
|
允许使用 ALTER TABLE
|
Alter_priv
|
SHOW DATABASES
|
显示所有数据库
|
Show_db_priv
|
SUPER
|
允许使用 KILL 和 SET GLOBAL 语句
|
Super_priv
|
CREATE TEMPORARY TABLE
|
允许使用 CREATE TEMPORARY TABLE
|
Create_tmp_table_priv
|
Lock_tables_priv
| ||
EXECUTE
|
允许用户运行已存储的子程序
|
Execute_priv
|
REPLICATION SLAVE
|
不支持
|
Repl_slave_priv
|
unmask
|
脱敏数据
|
Unmask_priv
|
CREATE VIEW
|
允许使用 CREATE VIEW
|
Create_view_priv
|
SHOW VIEW
|
允许使用 SHOW CREATE VIEW
|
Show_view_priv
|
CREATE ROUTINE
|
创建已存储的子程序
|
Create_routine_priv
|
ALTER ROUTINE
|
更改或取消已存储的子程序
|
Alter_routine_priv
|
CREATE USER
|
允许使用 CREATE USER, DROP USER, RENAME USER 和 REVOKE ALL PRIVILEGES
|
Create_user_priv
|
EVENT
|
创建、修改、删除 EVENT 的权限
|
Event_priv
|
TRIGGER
|
不支持
|
Trigger_priv
|
USAGE
|
仅仅用于连接登录数据库,主要用来设置 with option 部分
| |
ALL [PRIVILEGES]
|
设置除 GRANT OPTION 之外的所有简单权限
|
支持库级和表级两类。
*.* 所有对象
db.* 全库所有对象
db.object 库下面某个对象,可以是表,视图和存储过程的名字
gbase> grant select on *.* to abc;Query OK, 0 rows affected (Elapsed: 00:00:00.00)gbase> grant select on testdb.* to abc;Query OK, 0 rows affected (Elapsed: 00:00:00.00)gbase> grant select on testdb.abc to abc;Query OK, 0 rows affected (Elapsed: 00:00:00.01)使用建议
db.* 全库所有对象
db.object 库下面某个对象,可以是表,视图和存储过程的名字
权限和对象是2个维度,dba需要根据安全要求进行设置。
范围
|
用户
|
说明
|
语法
|
整个数据库
|
1个
|
管理员权限
|
grant all on *.*
|
1个库
|
1个
|
库管理元
|
grant all on 库名.*
|
1个库
|
多个
|
按表授权
|
grant all on 库名.表名
|
1个库,1个表
|
多个用户
|
按权限,表细分
|
grant X1,X2 on 库名.表名
|
一个有多个用户,权限完全相同,不想每次都重复授权。可以用角色role。
文章所有权为:“老紫竹的家 国产GBase数据库使用体验”