SinoDB用户权限

  SinoDB用户权限是由数据库对象和操作类型两个要素组成的,定义一个用户的权限就是定义这个用户可以对哪些数据对象进行哪些类型的操作。

  SinoDB使用了三级权限来保证数据的安全性,它们分别是数据库级权限,表级权限和字段级权限。

1. 数据库级别权限

① CONNECT
   这是级别最低的一种数据库级别的用户权限。拥有该权限的用户可以执行SELETE,UPDATE,INSERT,DELETE语句,针对数据表执行存储过程,创建数据表的视图,创建临时表。

② RESOURCE
  拥有该权限的用户除了拥有CONNECT全部权限外,还可以创建新的表,并可以对自己创建的表执行ALTER和DROP操作,创建索引。

③ DBA
  数据库的建立者和拥有者被自动授予这种权限。拥有DBA权限的用户除拥有RESOURCE全部权限外,还可以对其他用户授予或解除CONNECT,RESOURCE,DBA权限,可以对所有数据库对象进行操作。

语法

GRANT 权限 TO 用户名[,用户名];
REVOKE 权限 FROM 用户名[,用户名];

2. 表级与字段级权限

① INSERT:可以向表中增加新数据。
② DELETE:可以删除表中数据。
③ SELECT:可以查询表中记录(可扩展到字段)。
④ UPDATE:可以修改表中记录(可扩展到字段)。
⑤ REFERENCES:可以制定指定约束条件(可扩展到字段)。
⑥ INDEX:可以建立或删除索引。
⑦ ALTER:可以改变表结构。
⑧ ALL:包括以上所有权限。

语法

GRANT 权限[,权限] [(字段名[,字段名])] ON 表名 TO 用户名[,用户名]
REVOKE 权限[,权限] [(字段名[,字段名])] ON 表名 FROM 用户名[,用户名]

3.用户授权演示

示例1:创建系统级别用户:sino,并授予testdb数据库的connect/resource权限。

1、root用户登陆shell,创建操作系统用户sino.
useradd -g sinodbms -d /home/sino -s /bin/bash -m sino

2、用sinodbms用户dbaccess登录相应数据库给sino用户赋权。
su - sinodbms
dbaccess testdb -
grant connect to sino;
grant resource to sino;

3、切换sino用户登录数据库 ,使数据库环境变量生效,即可访问数据库
su - sino
source /home/sinodbms/.bash_profile
dbaccess testdb -