`
hunxiejun
  • 浏览: 1149398 次
文章分类
社区版块
存档分类
最新评论

创建一个只有select 权限的用户

 
阅读更多

添加用户NewA对用户OldB只有select 的权限步骤:

1. 新建用户

SQL> create user newA identified by"admin";

用户已创建。

SQL> grant connect,resource to newA;

授权成功。

SQL>

2.用OldB(如:scott)进行连接,用拼字符串的方式来将scott用户的select权限赋予新用户newA,并执行拼成的select串。

SQL> conn scott/admin;

已连接。

SQL> Select 'grant select onscott.'||table_name||' to newA;' from user_tables;

'GRANTSELECTONSCOTT.'||TABLE_NAME||'TONEWA;'

-------------------------------------------------------------

grant select on scott.DEPT to newA;

grant select on scott.EMP to newA;

grant select on scott.BONUS to newA;

grant select on scott.SALGRADE to newA;

SQL> grant select on scott.DEPT to newA;

授权成功。

SQL> grant select on scott.EMP to newA;

授权成功。

SQL> grant select on scott.BONUS tonewA;

授权成功。

SQL> grant select on scott.SALGRADE tonewA;

授权成功。

SQL>

或者通过命令:

SQL>grant select any table to newuser;

3. 创建同义词:拼创建同名词串,要赋予新用户create synonym的权限。

SQL> conn / as sysdba

已连接。

SQL> grant create synonym to newA;

授权成功。

SQL>

SQL> conn scott/admin;

已连接。

SQL> select 'create synonym '||table_name ||' for scott.'|| table_name ||';' fr

om user_tables;

'CREATESYNONYM'||TABLE_NAME||'FORSCOTT.'||TABLE_NAME||';'

---------------------------------------------------------------------------

create synonym DEPT for scott.DEPT;

create synonym EMP for scott.EMP;

create synonym BONUS for scott.BONUS;

create synonym SALGRADE for scott.SALGRADE;

4. 用新用户连接,执行上面创建的同名词串,然后就可以查询scott用户的所有表了,这样就跟查询自己的表一样。在实际工作中。给与其他用户对自己表的查询权限是很有用的。

SQL> conn newa/admin;

已连接。

SQL> create synonym DEPT for scott.DEPT;

同义词已创建。

SQL> create synonym EMP for scott.EMP;

同义词已创建。

SQL> create synonym BONUS forscott.BONUS;

同义词已创建。

SQL> create synonym SALGRADE forscott.SALGRADE;

同义词已创建。

SQL>

SQL> conn newa/admin;

已连接。

SQL> select * from dept;

DEPTNO DNAME LOC

---------- -------------- -------------

10 ACCOUNTING NEW YORK

20 RESEARCH DALLAS

30 SALES CHICAGO

40 OPERATIONS BOSTON

SQL> drop dept;

drop dept

*

第 1 行出现错误:

ORA-00950: 无效DROP 选项

操作结束,现在新用户newA已经对scott用户的所有表都具有了查询的权限。

-------------------------------------------------------------------------------------------------------

Blog: http://blog.csdn.net/tianlesoftware

Weibo: http://weibo.com/tianlesoftware

Email: dvd.dba@gmail.com

DBA1 群:62697716(满); DBA2 群:62697977(满)DBA3 群:62697850(满)

DBA 超级群:63306533(满); DBA4 群: 83829929(满)DBA5群: 142216823(满)

DBA6 群:158654907(满) 聊天 群:40132017(满) 聊天2群:69087192(满)

--加群需要在备注说明Oracle表空间和数据文件的关系,否则拒绝申请

分享到:
评论

相关推荐

    创建只有select 权限的用户方法

    创建只有select 权限的用户方法 很好用哦,屡试不爽。

    oracle用户权限、角色管理详解

    实体权限:某种权限用户对其它用户的表或视图的存取权限。(是针对表或视图而言的)。 二、系统权限管理: 1、系统权限分类: DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。 RESOURCE:拥有...

    Linux系统C语言编程连接MySql数据库实现的用户用户组色权限管理系统(图形界面)

    1、新增用户时候id 改为最大id值加一,之前用的select查看出来的记录数加一,删除后再增加会出错; 2、删除用户时候,若该用户创建过其他用户(不能改此用户名、不能改此用户角色,不能删除此用户); 3、(下一步...

    oracle创建删除用户示例分享(oracle删除用户命令及授权)

    注:grant:Oracle数据库授权的关键字connect:Oracle数据库的一个默认角色,只有连接上数据库的权限 3、把scott用户的表授权给lisi用户 代码如下:grant select on emp to lisi; pl/sql中的问题:动态执行表不可访问...

    Oracle创建视图(View)

    视图:是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改。视图基于的表称为基表,Oracle的数据库对象分为五种:表,视图,序列,索引和同义词。 视图是存储在数据字典...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

     实体权限:某种权限用户对其它用户的表或视图的存取权限。(是针对表或视图而言的)。主要包括select, update, insert, alter, index, delete, all其中all包括所有权限。  授予实体权限 用法:grant 实体权限1...

    oracle数据库经典题目

    26. 想在另一个模式中创建表,用户最少应该具有什么系统权限?( B ) A.CREATE TABLE B. CREATE ANY TABLE C. RESOURCE D. DBA 27. 如果要启用所有角色,则应该使用哪一个命令?( B ) A.SET ROLE ALL B. SET ...

    数据库操作语句大全(sql)

    注意:在top后不能直接跟一个变量,所以在实际应用中只有这样的进行特殊的处理。Rid为一个标识列,如果top后还有具体的字段,这样做是非常有好处的。因为这样可以避免 top的字段如果是逻辑索引的,查询的结果后实际...

    DCL(数据控制语言)

    DCL全称是Data Control Language,即数据控制语言,主要是用来管理数据库用户,控制数据库的访问权限,是一种可对数据访问权进行控制的指令,它可以控制特定用户账户对数据表、查看表、存储程序、用户自定义函数等...

    MySQL命令大全

     此后就创建了一个新用户叫:testuser,这个用户只能从localhost连接到数据库并可以连接到test 数据库。下一步,我们必须指定testuser这个用户可以执行哪些操作:  mysql> GRANT select, insert, delete,update ...

    MYSQL常用命令大全

     此后就创建了一个新用户叫:testuser,这个用户只能从localhost连接到数据库并可以连接到test 数据库。下一步,我们必须指定testuser这个用户可以执行哪些操作:  mysql> GRANT select, insert, delete,update ...

    PostgreSQL PRIVILEGES(权限)

    无论何时创建数据库对象,都会为其分配一个所有者,所有者通常是执行 create 语句的人。 对于大多数类型的对象,初始状态是只有所有者(或超级用户)才能修改或删除对象。要允许其他角色或用户使用它,必须为该用户...

    sql经典语句一部分

    注意:在top后不能直接跟一个变量,所以在实际应用中只有这样的进行特殊的处理。Rid为一个标识列,如果top后还有具体的字段,这样做是非常有好处的。因为这样可以避免 top的字段如果是逻辑索引的,查询的结果后实际...

    经典SQL语句大全

    注意:在top后不能直接跟一个变量,所以在实际应用中只有这样的进行特殊的处理。Rid为一个标识列,如果top后还有具体的字段,这样做是非常有好处的。因为这样可以避免 top的字段如果是逻辑索引的,查询的结果后实际...

    ASP.NET中如何防范SQL注入式攻击

    防止攻击者构造出类如“SELECT * from Users WHERE login = 'mas' -- AND password =''”之类的查询,因为这类查询的后半部分已经被注释掉,不再有效,攻击者只要知道一个合法的用户登录名称,根本不需要知道用户的...

    Oraclet中的触发器

    触发器在数据库里以独立的对象存储,它与存储过程不同的是,存储过程通过其它程序来启动运行或直接启动运行,而触发器是由一个事件来启动运行。即触发器是当某个事件发生时自动地隐式运行。并且,触发器不能接收...

    oracle实验报告

    (6)在一个单独的表上,最多只能创建三个触发器与之关联,一个INSERT触发器,一个DELETE触发器和一个UPDATE触发器。 1. 实例讲解Oracle数据库自带的几个触发器 Oracle数据库自带的几个触发器(最简单触发器格式)...

    Oracle9i的init.ora参数中文说明

    说明: 指定一个字符串值, 设置 TIME 数据类型的默认值, 该数据类型包含 HOUR, MINUTE 和 SECOND 这几个日期时间字段。 语法: TIME '09:26:50' (将值存储为 7 个字节)。 默认值: 从 NLS_TERRITORY 中获得 nls_time...

    windows2003一键安全设置包下载 网站架设安全设置

    右键点D盘,属性,安全,高级,添加,输入创建的帐户名,选择:只有该文件夹,勾上:读取权限(倒数第三个),点确定。 3. 在系统服务中配置该用户启动; 在运行里输入Services.msc回车打开服务面板,找到Mysql...

    CuteFTP9简易汉化版

    让您能够接受或拒绝一个服务器的证书,接受证书存储在一个本地数据库,导入和导出证书在本地存储,使用窗口的受信任的证书存储证书的批准,并且能够创建自己的“强势”(4096位)自签名证书,包括一个证书请求文件(签字的...

Global site tag (gtag.js) - Google Analytics