Oracle用户权限
在Oracle中,可以设置多个用户,分别操作他们的权限,如DBA拥有最大权限可以说是数据库的管理员,而我们产品所连接Oracle所用的用户就不可以使用DBA用户,因为一般产品只需要增删改表的权限即可,新建、删除表这样的操作可以把权限给DBA处理,这样可以有效的保护数据安全。
用户如何授权
上面介绍说到 新建、删除表权限 给DBA用户处理,那么DBA用户建立好表后,产品所使用的连接用户如何访问到表呢?这里就需要去授权操作了。
一般表存在增、删、改、查、删除表等操作,我们可以分别把这些权限授权,也可以一次性授权所有权限。
Demo
现存在DBA用户user_dba和普通用户user_simple,user_dba新建立一张表CSDN_BLOG,授权给user_simple操作如下:
-- 在user_dba用户下操作
-- 授权user_dba的表CSDN_BLOG 查询、更新、插入操作权限给user_simple
grant select, update, insert on user_dba.CSDN_BLOG to user_simple;
-- 授权user_dba的表CSDN_BLOG 所有操作操作权限给user_simple
grant all on user_dba.CSDN_BLOG to user_simple;
授权后在user_simple用户下去操作表CSDN_BLOG使用如下SQL,发现还是提示表不存在。
Select * From CSDN_BLOG
使用如下SQL却可以,这是因为没有去同步这个表的同义词,下面还需要同步表同义词。
Select * From user_dba.CSDN_BLOG
同步同义词
-- 在user_simple用户下操作
CREATE SYNONYM CSDN_BLOG FOR user_dba.CSDN_BLOG