Oracle中如何授予某个新用户create table权限,那么这个用户就只有creat table权限

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle中如何授予某个新用户create table权限,那么这个用户就只有creat table权限相关的知识,希望对你有一定的参考价值。

Oracle中如何授予某个新用户create table权限,那么这个用户就只有creat table权限,而没有其他权限吗?如select权限?

用拥有CREATE TABLE [WITH ADMIN OPTION]的用户(比如DBA用户)执行:grant create table to your_user;
一个用户可以CREATE TABLE,那他对这个表当然就有SELECT权限了,以及对该表其他操作权限,比如ALTER,INSERT,UPDATE,DROP等。
参考技术A select权限要单独授予,grant select on XX.XX to username; 参考技术B GRANT
名称
GRANT — 赋予一个用户,一个组或所有用户访问权限
GRANT privilege [, ...] ON object [, ...]
TO PUBLIC | GROUP group | username

如:grant create table to 用户名

oracle中,用户如何获得grant权限?

用户user1中有表test1,test2,
用户user2希望可以有权限来查询user1中的test1和test2以及user1以后新增加的表。
要求user2查询user1的表的权限,是由user1赋予,而不是sys账户赋予。
所以面临2个问题,
1.user1如何获得grant的权限?
2.user2如何自动获得user1新增表的select权限?

1、系统权限的授予权获得
在获得一个系统权限的同时选择WITH ADMIN OPTION从句。
例: grant Create any view to scott WITH ADMIN OPTION;
2、对象权限的授予权获得
在获得一个系统权限的同时选择WITH ADMIN OPTION从句。
例:grant Select on emp to Myuser WITH GRANT OPTIION;
3、对于用户自身对象的对象授予权限没有必要获得,可以直接授予其他用户。
4、user2获得user1所有表的权限有两种方法实现:
a) 登入user1用户,把表的Select权限一个一个授予user2.
b) 登入DBA用户权限授予suer2用户Select Any权限。
例:Grant Select Any Table to user2; --这样获得是所有用户表的Select权限。
参考技术A 如果用户1中有表很多。1、你只是要把这2个表的权限给USER2 2、对于以后新增的表自动赋权。看来你只能去写个触发器了。监控用户的操作,增加表了就赋权。不过为什么增加表的时候不执行赋权语句呢?奇怪追问

user1中有3000多张表,需要把这些表的全部select权限都授予user2。
手工操作太麻烦,所以想写java来控制。
临时需要用到oracle,临时学的,还不知道有触发器这概念。
能否多指教一些?
比如,如何在增加表的时候执行赋权?这个SQL代码怎么写?

追答

我觉得最简单的办法:你只需要用SQL将这3000多个表 一次性赋权给 USER2。 写个SQL语句将这些赋权的语句拼出来,然后 拷贝 粘贴到命令窗口执行就可以了。如果USER1再增加表,且需要赋值给USER2,建议建立表的同时就将权限赋予USER2。

SELECT 'GRANT SELECT ON '||TABLE_NAME ||' TO USER2 ;'
FROM ALL_ALL_TABLES
WHERE OWNER='USER1'

如果是想USER1增加表了,就自动赋值给USER2,这就不行了,这是手工赋权

本回答被提问者采纳

以上是关于Oracle中如何授予某个新用户create table权限,那么这个用户就只有creat table权限的主要内容,如果未能解决你的问题,请参考以下文章

oracle中,用户如何获得grant权限?

oracle怎么授权授权的权限

PLSQL怎么创建oracle数据库用户

oracle 创建表空间并授予用户角色

oracle中怎样让一个用户查询其它用户的trigger?

oracle授予权限