oracle dba有哪些权限(oracle dba权限是什么)

bk2898 74 0

oracle dba有哪些权限

dba是数据库管理员
它除了重启数据库 修改字符集的权限没有外 具有其它全部权限
如建表改表 表的增删改查
建表空间 建索引 视图 存储过程
建用户 给用户授权等等

oracle dba权限是什么

oracle dba权限都有什么权限啊?!
dba 是oralce 更大权限的,oracle 所有的权限他都有。
比如,创建数据库、数据结构啊等等。

分享相关内容的知识扩展阅读:

如何区分oracle自定义用户和默认用户的

在ORACLE11G下默认开启了审计,可通过审计功能来区分是否是自定义用户,为代码示例
SQL> show parameter audit

NAME TYPE VALUE
------------------------------------ ----------- ----------------------------
audit_file_dest string D:\ORACLE\ADMIN\TEST\ADUMP
audit_sys_operations boolean FALSE
audit_trail string DB

SQL> select user_name,proxy_name,privilege,success,failure from dba_priv_audit_opts;

USER_NAME PROXY_NAME PRIVILEGE SUCCESS FAILURE
---------- ---------- ---------------------------------------- ---------- ----------
CREATE EXTERNAL JOB BY ACCESS BY ACCESS
CREATE ANY JOB BY ACCESS BY ACCESS
GRANT ANY OBJECT PRIVILEGE BY ACCESS BY ACCESS
EXEMPT ACCESS POLICY BY ACCESS BY ACCESS
CREATE ANY LIBRARY BY ACCESS BY ACCESS
GRANT ANY PRIVILEGE BY ACCESS BY ACCESS
DROP PROFILE BY ACCESS BY ACCESS
ALTER PROFILE BY ACCESS BY ACCESS
DROP ANY PROCEDURE BY ACCESS BY ACCESS
ALTER ANY PROCEDURE BY ACCESS BY ACCESS
CREATE ANY PROCEDURE BY ACCESS BY ACCESS

USER_NAME PROXY_NAME PRIVILEGE SUCCESS FAILURE
---------- ---------- ---------------------------------------- ---------- ----------
ALTER DATABASE BY ACCESS BY ACCESS
GRANT ANY ROLE BY ACCESS BY ACCESS
CREATE PUBLIC DATABASE LINK BY ACCESS BY ACCESS
DROP ANY TABLE BY ACCESS BY ACCESS
ALTER ANY TABLE BY ACCESS BY ACCESS
CREATE ANY TABLE BY ACCESS BY ACCESS
DROP USER BY ACCESS BY ACCESS
ALTER USER BY ACCESS BY ACCESS
CREATE USER BY ACCESS BY ACCESS
CREATE SESSION BY ACCESS BY ACCESS
AUDIT SYSTEM BY ACCESS BY ACCESS

USER_NAME PROXY_NAME PRIVILEGE SUCCESS FAILURE
---------- ---------- ---------------------------------------- ---------- ----------
ALTER SYSTEM BY ACCESS BY ACCESS

已选择23行。

看到了会自动审计CREATE USER,想到了在ORACLE下通过DBA_USERS好像没有办法判断哪个用户是系统自带的,哪个用户是用户自己创建的,应该可以结合着审计来判断。来做个试验来看看。

C:\Documents and Settings\Administrator>sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on 星期一 2月 4 14:43:16 2013

Copyright (c) 1982, 2010, Oracle. All rights reserved.

连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning and Real Application Testing options

SQL> SET LINESIZE 200
SQL> select * from audit_actions where name='CREATE USER';

ACTION NAME
---------- ----------------------------
51 CREATE USER

SQL> select * from dba_audit_trail WHERE ACTION=51;

未选定行

SQL> COL USER_NAME FOR A5
SQL> COL PROXY_NAME FOR A5
SQL> select * from dba_priv_audit_opts where privilege='CREATE USER';

USER_ PROXY PRIVILEGE SUCCESS FAILURE
----- ----- ---------------------------------------- ---------- ----------
CREATE USER BY ACCESS BY ACCESS

SQL> CREATE USER A IDENTIFIED BY A;--创建用户看看,是否产生了审计结果

用户已创建。

SQL> create user b identified by b default tablespace users;

用户已创建。

SQL> select * from dba_audit_trail WHERE ACTION=51;--发现没有结果,刚开始觉得奇怪,后来想到连接的是SYS用户,而ORACLE现在默认对SYS用户的行为不审计,即便开启了审计,也不放在该视图里。

未选定行

SQL> grant dba to a;

授权成功。

SQL> exit

C:\Documents and Settings\Administrator>sqlplus a/a--此处验证了在11G下用户名口令严格区分大小写

SQL*Plus: Release 11.2.0.1.0 Production on 星期一 2月 4 15:15:51 2013

Copyright (c) 1982, 2010, Oracle. All rights reserved.

ERROR:
ORA-01017: 用户名/口令无效; 登录被拒绝

请输入用户名:
C:\Documents and Settings\Administrator>sqlplus A/A

SQL*Plus: Release 11.2.0.1.0 Production on 星期一 2月 4 15:16:04 2013

Copyright (c) 1982, 2010, Oracle. All rights reserved.

连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning and Real Application Testing options

SQL> CREATE USER c identified by c;--用A用户创建了个USER,再来看看审计结果

用户已创建。

SQL> select count(*) from dba_audit_trail WHERE ACTION=51;--已经产生了一条审计记录

COUNT(*)
----------
1

可以通过结合审计,是可以判断哪些用户是系统默认的,哪些用户是用户创建的。

oracle中如何赋予该用户CONNECT、RESOURCE、DBA身份

grant connect,resource,dba to user;

CONNECT角色: --是授予最终用户的典型权利,最基本的
CREATE SESSION --建立会话
RESOURCE角色: --是授予开发人员的
CREATE CLUSTER --建立聚簇
CREATE PROCEDURE --建立过程
CREATE SEQUENCE --建立序列
CREATE TABLE --建表
CREATE TRIGGER --建立触发器
CREATE TYPE --建立类型
CREATE OPERATOR --创建操作者
CREATE INDEXTYPE --创建索引类型
CREATE TABLE --创建表

DBA角色: --是授予数据库维护人员的

OLAP_DBA
SCHEDULER_ADMIN
DELETE_CATALOG_ROLE
EXECUTE_CATALOG_ROLE
WM_ADMIN_ROLE
EXP_FULL_DATABASE
SELECT_CATALOG_ROLE
JAVA_DEPLOY
GATHER_SYSTEM_STATISTICS
JAVA_ADMIN
XDBADMIN
IMP_FULL_DATABASE
XDBWEBSERVICES

怎样在一台电脑上装两个oracle客户端?

开始装了个8i的客户端,可以连接8i的服务器,后来装了个11g的客户端,就只能连接11g的服务器了,连接8i时显示版本过低。这时用8i设置连接时,就会直接报错,找不到orasql8.dll。有没有什么办法解决?
系统环境使用的是ol5.8,采用oracle-validate-rpm来自动配置oracle的系统环境。
安装路径需要手工创建,在这里需要准备两个两个path($oracle_base)
ora11g:
创建 ORACLE 软件路径
mkdir -p /u01/app/oracle/product/11.2.0/db_1
chown oracle:dba -R /u01
chmod 744 –R /u01
设置oracle用户SHELL参数:
vi /home/oracle/.bash_profile
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE

ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1; export ORACLE_HOME
ORACLE_SID=ora11g; export ORACLE_SID
ORACLE_TERM=vt100; export ORACLE_TERM
TNS_ADMIN=$ORACLE_HOME/network/admin;export TNS_ADMIN
NLS_LANG=american_america.zhs16gbk; export NLS_LANG
ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data; export ORA_NLS33
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib; export LD_LIBRARY_PATH
LIBPATH=$ORACLE_HOME/lib:$ORACLE_HOME/ctx/lib ;export LIBPATH
ORA_DB=$ORACLE_HOME/dbs;export ORA_DB
CLASSPATH=$ORACLE_HOME/JRE/lib:$ORACLE_HOME/JRE/lib/rt.jar:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
PATH=$ORA_CRS_HOME/bin:$ORACLE_HOME/bin:$PATH; export PATH

可以使用同一个dba oinstall 组。

ora10:
user:oracle10g
useradd -d /home/oracle10g -u 54322 -g oinstall -G dba oracle10g
创建 ORACLE 软件路径:
mkdir -p /u02/app/oracle/product/10.2.0/db_1
chown oracle:dba -R /u02
chmod 744 –R /u02
设置oracle用户SHELL参数:
vi /home/oracle10g/.bash_profile
ORACLE_BASE=/u02/app/oracle; export ORACLE_BASE

ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1; export ORACLE_HOME
ORACLE_SID=ora10g; export ORACLE_SID
ORACLE_TERM=vt100; export ORACLE_TERM
TNS_ADMIN=$ORACLE_HOME/network/admin;export TNS_ADMIN
NLS_LANG=american_america.zhs16gbk; export NLS_LANG
ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data; export ORA_NLS33
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib; export LD_LIBRARY_PATH
LIBPATH=$ORACLE_HOME/lib:$ORACLE_HOME/ctx/lib ;export LIBPATH
ORA_DB=$ORACLE_HOME/dbs;export ORA_DB
CLASSPATH=$ORACLE_HOME/JRE/lib:$ORACLE_HOME/JRE/lib/rt.jar:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
PATH=$ORA_CRS_HOME/bin:$ORACLE_HOME/bin:$PATH; export PATH

安装中遇到的的问题及解决 *** ;
(a)
oracle 10201 没有在ol5.x 和 rhel5.x上认证,所以在
Linux安装Oracle报Checking operating system version must be redhat-3, SuSE-9, redhat-4, UnitedLin。。。。。

在Linux系统中安装oralce的过程中,如果Linux发行版本不是oracle的推荐版本,可能会报如下错误,导致runInstaller无法完成:

Checking operating system version: must be redhat-3, SuSE-9, redhat-4, UnitedLinux-1.0, asianux-1 or asianux-2
Failed <<<<四川陶诺

遇到这个问题,可以通过如下两种方式解决

1、修改Linux的发行标记
如在redhat-5上安装oracle的时候,需要将文件 '/etc/redhat-release'的内容由

Red Hat Enterprise Linux Server release 5 (Tikanga)

修改为

Red Hat Enterprise Linux Server release 4 (Tikanga)

2、runInstaller的时候加上-ignoreSysPreReqs参数,如:

./runInstaller -ignoreSysPreReqs

不过不推荐这种方式,因为这可能会错过对操作系统内核参数以及oracle必需的包的检测。

(b)oraInventory Permission denied
安装Oracle数据库和应用时经常会遇到的错误:

All installer requirements met.
You do not have sufficient permissions to access the inventory '/u01/app/oracle/oraInventory'. Installation cannot continue.
Make sure that you have read/write permissions to the inventory directory and restart the installer.: Permission denied
这是由于在相同的机器下,使用不同的用户安装多个版本的数据库或应用软件,Oracle默认会采用/etc/oraInst.loc文件中的参数作为oraInventory目录,而新用户如果没有正确的权限则会造成上述的错误。
解决这个问题,可以在安装时给runInstaller指定参数,使用不同的oraInventory目录即可。

./runInstaller -invPtrLoc /u02/app/oracle/oraInst.loc --------/* ‘/u02/app/oracle/oraInst.loc ’ oracle会自动去创建这个目录 */

(c)在安装第二套数据时(我是先安装oracle11g ,再安装oracle10g)好像只需要执行了一个脚本,但在后检测时也没有发现问题。

1.》在安装时会遇到ORA-27125: unable to create shared memory segment
解决 *** :
Oracle文档上关于ORA-27125错误的描述为:
ORA-27125: unable to create shared memory segment
Cause: shmget() call failed
Action: contact Oracle support
查询了一下,发现问题和linux上的hugetbl有关。
解决 *** 也很简单,首先检查oracle用户的组信息:
?

1
2
3
4

[oracle10g@lixora ~]$ id oracle
uid=54322(oracle) gid=502(oinstall) groups=502(oinstall),501(dba)
[oracle@yans1 ~]$ more /proc/sys/vm/hugetlb_shm_group
0

用root执行的命令,将dba组添加到系统内核中:
# echo 54322 > /proc/sys/vm/hugetlb_shm_group

2.》
Last login: Fri Jun 28 11:40:55 2013 from 192.168.1.2
?

1

[root@lixora ~]# /u02/app/oracle/product/10.2.0/db_1/root.sh

Running Oracle10 root.sh script...
The following environment variables are set as:
ORACLE_OWNER= oracle10g
ORACLE_HOME= /u02/app/oracle/product/10.2.0/db_1
Enter the full pathname of the local bin directory: [/usr/local/bin]:
The file "dbhome" already exists in /usr/local/bin. Overwrite it? (y/n)

在这里全部选默认即可

抱歉,评论功能暂时关闭!