在ORACLE里为何建一个只读用户,并授权只能查看其中几个表。

hooliu6 2010-11-18 08:57:08
在ORACLE里为何建一个只读用户,并授权只能查看其中几个表。如:我数据库名为ZZCS,库里有ta1,ta2,ta3,ta4...等表,我想建一个USER的只读用户,如何授权USER这个用户只能查看或select TA1,TA2,这两个表 ,其它表USER没有权限访问。。。


请大侠们写下详细的操作过程。在此谢过!!
...全文
1955 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
hooliu6 2010-11-18
  • 打赏
  • 举报
回复
谢谢楼上各位,!
  • 打赏
  • 举报
回复
--用system用户登录,创建用户并授权
conn system/system as sysdba
create user username identified by password
grant connect to username
grant select on ta1 to username
--例如:
SQL> conn system/system as sysdba;
已连接。
SQL> create user test identified by test;

用户已创建。

SQL> grant connect to test;

授权成功。
SQL> grant select on scott.emp to test;

授权成功。

SQL> conn test/test;
已连接。

SQL> select * from scott.emp;

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- -------------- ---------- ---------- ----------
7369 SMITH CLERK 7902 17-12月-80 800 900 20
7499 ALLEN SALESMAN 7698 20-2月 -81 1600 300 30
7521 WARD SALESMAN 7698 22-2月 -81 1250 500 30
7566 JONES MANAGER 7839 02-4月 -81 2975 900 20
7654 MARTIN SALESMAN 7698 28-9月 -81 1250 1400 30
7698 BLAKE MANAGER 7839 01-5月 -81 2850 30
7782 CLARK MANAGER 7839 09-6月 -81 2450 10
7788 SCOTT ANALYST 7566 19-4月 -87 3000 900 20
7839 KING PRESIDENT 17-11月-81 5000 10
7844 TURNER SALESMAN 7698 08-9月 -81 1500 0 30
7876 ADAMS CLERK 7788 23-5月 -87 1100 900 20
7900 JAMES CLERK 7698 03-12月-81 950 30
7902 FORD ANALYST 7566 03-12月-81 3000 900 20
7934 MILLER CLERK 7782 23-1月 -82 1300 10

已选择14行。
hooliu6 2010-11-18
  • 打赏
  • 举报
回复
这个用户只能查看不能删掉数据吧。。。另外能不能授权只能查看TA1,TA2中的某个字段??
冰山客 2010-11-18
  • 打赏
  • 举报
回复
create USER user_name identified by user_password;

grant connect to user_name ;

grant select on TA1,TA2;
Oracle 主要配置文件介绍:profile文件,oratab 文件,数据库实例初始化文件 initSID.ora,监听配置文件, sqlnet.ora 文件,tnsnames.ora 文件1.2 Oracle 主要配置文件介绍1.2.1 /etc/profile 文件 系统级的环境变量一般在/etc/profile 文件中定义 在 CAMS 系统 与数据库 相关的环境变量就定义在/etc/profile 文件中 如下所示 export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/8.1.7 export PATH=$PATH:$ORACLE_HOME/bin export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib export ORACLE_SID=cams export ORACLE_TERM=vt100 export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data export NLS_LANG=AMERICAN.ZHS16CGB231280 & 说明 1 配置上述环境变量要注意定义的先后顺序 如 定义 ORACLE_HOME 时 用 到 了 ORACLE_BASE 那 么 ORACLE_HOME 的 定 义 应 该 在 ORACLE_BASE之后 2 在使用中文版 CAMS 时 环境变量 NLS_LANG 的值应该设置为 AMERICAN.ZHS16CGB231280 如上所示 在使用英文版 CAMS时 可 以不设置 NLS_LANG 即去掉 export NLS_LANG=... ... 那一行 也可以 设置 NLS_LANG 的值为 AMERICAN_AMERICA.US7ASCII1.2.2 /etc/oratab 文件 /etc/oratab 文件描述目前系统中创的数据库实例 以及是否通过 dbstart 和 dbshut 来控制该实例的启动与关闭 如下所示 忽略以#开头的注释部分 : cams:/u01/app/oracle/product/8.1.7:Y 其中 cams 为实例 ID /u01/app/oracle/product/8.1.7为 ORACLE_HOME目 录 Y示允许使用 dbstart和 dbshut 启动和关闭该实例数据库 如果设置为 N 示不通过 dbstart 和 dbshut 启动和关闭实例数据库 CAMS 系统要求在 安装完 ORACLE 后要求将该参数修改为 Y 以保证 ORACLE 数据库自启动 和关闭 1.2.3 数据库实例初始化文件 initSID.ora 每个数据库实例都有一个初始化 参数文件 其缺省 存放的路径为 $ORACLE_BASE/admin//pfile 其名称为 init.ora 如 cams 实 例 对 应 的 参 数 文 件 为 initcams.ora 缺 省 存 放 路 径 为 $ORACLE_BASE/admin/cams/pfile 即/u01/app/oracle/admin/cams/pfile

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧