oracle怎么创建带有sysdba权限用户

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle怎么创建带有sysdba权限用户相关的知识,希望对你有一定的参考价值。

oracle10g 怎么创建带有sysdba权限用户,本人是新手,最好用EMC图形界面来说。
已经搞定了,谢谢各位

创建一个有sysdba权限的用户很简单。
1. 如果是通过sql: Create user TEST identified by TEST, grant sysdba to TEST

2. 如果是通过EM图形界面,创建用户,然后把sysdba权限给它就行了。

这样创建好用户后还不能直接通过这个用户登录,需要创建密码文件,并把这个用户添加到密码文件里。因为sysdba权限是可以启动关闭数据库的,在数据库关闭的状态下没有办法通过数据库的权限机制来判断用户的权限。只能通过操作系统层。
参考技术A 他是说要有sysdba的权限,看清楚了。

只要打开sqlplus或pl/sql developer输入以下的命令就可以了,不需要图形。

以创建TEST用户为例:

CREATE USER TEST
IDENTIFIED BY TEST
/
GRANT DBA TO TEST
/
ALTER USER TEST DEFAULT ROLE ALL
/
参考技术B sysdba身份不等同于dba这个角色。楼上的回答不对。
创建用户
create user username identified by <password>;
grant connect to username;
如果想让一个用户可以sysdba身份登录,只需执行grant sysdba to username即可。

oracle数据库创建实例

oracle数据库创建实例

 

数据库已经安装完成,可以正常登陆查看用户等操作

system用户只能用normal身份登陆em。除非你对它授予了sysdba的系统权限或者syspoer系统权限。

sys用户具有“SYSDBA”或者“SYSOPER”权限,登陆em也只能用这两个身份,不能用normal。

sys所有oracle的数据字典的基表和视图都存放在sys用户中,这些基表和视图对于oracle的运行是至关重要的,由数据库自己维护,任何用户都不能手动更改。sys用户拥有dba,sysdba,sysoper等角色或权限,是oracle权限最高的用户。

system用户用于存放次一级的内部数据,如oracle的一些特性或工具的管理信息。system用户拥有普通dba角色权限。

检查数据库

[root@oracle12c ~]# su – oracle

[oracle@oracle12c ~]$ lsnrctl start

复制代码
LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 21-10月-2019 03:04:10

Copyright (c) 1991, 2016, Oracle.  All rights reserved.

启动/usr/local/Oracle/Product/11.2.0/bin/tnslsnr: 请稍候...

TNSLSNR for Linux: Version 12.2.0.1.0 - Production
系统参数文件为/usr/local/Oracle/Product/11.2.0/network/admin/listener.ora
写入/usr/local/Oracle/diag/tnslsnr/oracle12c/listener/alert/log.xml的日志信息
监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle12c)(PORT=1521)))
监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))

正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle12c)(PORT=1521)))
LISTENER 的 STATUS
------------------------
别名                      LISTENER
版本                      TNSLSNR for Linux: Version 12.2.0.1.0 - Production
启动日期                  21-10月-2019 03:04:10
正常运行时间              0 天 0 小时 0 分 0 秒
跟踪级别                  off
安全性                    ON: Local OS Authentication
SNMP                      OFF
监听程序参数文件          /usr/local/Oracle/Product/11.2.0/network/admin/listener.ora
监听程序日志文件          /usr/local/Oracle/diag/tnslsnr/oracle12c/listener/alert/log.xml
监听端点概要...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle12c)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
监听程序不支持服务
命令执行成功
复制代码

[oracle@oracle12c ~]$ lsnrctl status

复制代码
LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 21-10月-2019 03:04:13

Copyright (c) 1991, 2016, Oracle.  All rights reserved.

正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle12c)(PORT=1521)))
LISTENER 的 STATUS
------------------------
别名                      LISTENER
版本                      TNSLSNR for Linux: Version 12.2.0.1.0 - Production
启动日期                  21-10月-2019 03:04:10
正常运行时间              0 天 0 小时 0 分 3 秒
跟踪级别                  off
安全性                    ON: Local OS Authentication
SNMP                      OFF
监听程序参数文件          /usr/local/Oracle/Product/11.2.0/network/admin/listener.ora
监听程序日志文件          /usr/local/Oracle/diag/tnslsnr/oracle12c/listener/alert/log.xml
监听端点概要...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle12c)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
监听程序不支持服务
命令执行成功
复制代码

创建新的实例

1. 首先设置要创建的ORACLE的SID

 [oracle@oracle12c ~]$ export ORACLE_SID=addb

2、 创建相应目录

[oracle@oracle12c ~]$ mkdir -p $ORACLE_BASE/admin/addb/{a,b,c,u}dump

[oracle@oracle12c ~]$ mkdir -p $ORACLE_BASE/admin/addb/pfile

[oracle@oracle12c ~]$ mkdir -p $ORACLE_BASE/oradata/addb

3、在$ORACLE_HOME/dbs目录下创建初始化文件

命名方法:init实例名.ora 本例中initaddb.ora

[oracle@oracle12c ~]$ cd $ORACLE_HOME/dbs

[oracle@oracle12c dbs]$ cp init.ora initaddb.ora

[oracle@oracle12c dbs]$ vi initaddb.ora

复制代码
db_name=\'addb\'
memory_target=1G
processes = 150
audit_file_dest=\'/usr/local/Oracle/admin/addb/adump\'
audit_trail =\'db\'
db_block_size=8192
db_domain=\'\'
db_recovery_file_dest=\'/usr/local/Oracle/fast_recovery_area\'
db_recovery_file_dest_size=2G
diagnostic_dest=\'/usr/local/Oracle\'
dispatchers=\'(PROTOCOL=TCP) (SERVICE=ORCLXDB)\'
open_cursors=300
remote_login_passwordfile=\'EXCLUSIVE\'
undo_tablespace=\'UNDOTBS1\'
# You may want to ensure that control files are created on separate physical
# devices
control_files = (ora_control1, ora_control2)
compatible =\'11.2.0\'
复制代码

注意不要用原来的<ORACLE_BASE>作为路径,修改为对应的绝对路径,否则会报错

4、创建密码文件

[oracle@oracle12c dbs]$ orapwd file=$ORACLE_HOME/dbs/orapwaddb password=p@ssw0rd entries=5 force=y

有复杂度要求

5、创建oracle的建库脚本 createdb.sql,内容如下,将其放在了$ORACLE_BASE/oradata/addb下面

[oracle@oracle12c dbs]$ cd $ORACLE_BASE/oradata/addb

[oracle@oracle12c addb]$ vi createdb.sql

复制代码
CREATE DATABASE addb
MAXINSTANCES 8
MAXLOGHISTORY 1
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
DATAFILE \'/usr/local/Oracle/oradata/addb/system01.dbf\' size 100m reuse autoextend on next 1m maxsize unlimited extent management local
sysaux datafile \'/usr/local/Oracle/oradata/addb/sysaux01.dbf\' size 100m reuse autoextend on next 1m maxsize unlimited
default temporary tablespace TEMP tempfile \'/usr/local/Oracle/oradata/addb/temp01.dbf\' size 20m reuse autoextend on next 640k maxsize unlimited
undo tablespace UNDOTBS1 datafile \'/usr/local/Oracle/oradata/addb/undo01.dbf\' size 20m reuse autoextend on next 5M maxsize unlimited
logfile
GROUP 1 (\'/usr/local/Oracle/oradata/addb/redo1.dbf\') size 10m,
GROUP 2 (\'/usr/local/Oracle/oradata/addb/redo2.dbf\') size 10m,
GROUP 3 (\'/usr/local/Oracle/oradata/addb/redo3.dbf\') size 10m
CHARACTER SET ZHS16GBK
NATIONAL CHARACTER SET AL16UTF16
;
复制代码

6、执行建库和数据字典脚本

 以sysdba进入:

sqlplus / as sysdba

依次执行以下命令

startup nomount;

@$ORACLE_BASE/oradata/addb/createdb.sql

@?/rdbms/admin/catalog.sql;

@?/rdbms/admin/catproc.sql;

@?/rdbms/admin/catexp.sql;

[oracle@oracle12c addb]$ sqlplus / as sysdba

SQL> startup nomount;

创建所需文件目录

[oracle@oracle12c addb]$ mkdir /usr/local/Oracle/fast_recovery_area

再次尝试

[oracle@oracle12c addb]$ sqlplus / as sysdba

SQL> startup nomount;

复制代码
ORACLE 例程已经启动。

Total System Global Area 1073741824 bytes
Fixed Size                  8628936 bytes
Variable Size             679478584 bytes
Database Buffers          377487360 bytes
Redo Buffers
复制代码

SQL> @$ORACLE_BASE/oradata/addb/createdb.sql

SQL> @?/rdbms/admin/catalog.sql;

SQL> @?/rdbms/admin/catproc.sql;

SQL>@?/rdbms/admin/catexp.sql;

 7、修改监听配置文件listener.ora

到$ORACLE_HOME/network/admin目录下:vi listener.ora

[oracle@oracle12c addb]$ cd $ORACLE_HOME/network/admin

[oracle@oracle12c admin]$ vi listener.ora

复制代码
addb =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1522))
      )
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = oracle12c)(PORT = 1522))
      )
    )
  )
SID_LIST_addb =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = addb)
      (ORACLE_HOME = /usr/local/Oracle/Product/11.2.0/)
      (SID_NAME = addb)
    )
  )
复制代码

[oracle@oracle12c admin]$ lsnrctl start addb

复制代码
LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 21-10月-2019 04:15:14
Copyright (c) 1991, 2016, Oracle.  All rights reserved.
启动/usr/local/Oracle/Product/11.2.0/bin/tnslsnr: 请稍候...
TNSLSNR for Linux: Version 12.2.0.1.0 - Production
系统参数文件为/usr/local/Oracle/Product/11.2.0/network/admin/listener.ora
写入/usr/local/Oracle/diag/tnslsnr/oracle12c/addb/alert/log.xml的日志信息
监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1522)))
监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle12c)(PORT=1522)))

正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1522)))
LISTENER 的 STATUS
------------------------
别名                      addb
版本                      TNSLSNR for Linux: Version 12.2.0.1.0 - Production
启动日期                  21-10月-2019 04:15:15
正常运行时间              0 天 0 小时 0 分 1 秒
跟踪级别                  off
安全性                    ON: Local OS Authentication
SNMP                      OFF
监听程序参数文件          /usr/local/Oracle/Product/11.2.0/network/admin/listener.ora
监听程序日志文件          /usr/local/Oracle/diag/tnslsnr/oracle12c/addb/alert/log.xml
监听端点概要...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1522)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle12c)(PORT=1522)))
服务摘要..
服务 "addb" 包含 1 个实例。
  实例 "addb", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
命令执行成功
复制代码

[oracle@oracle12c admin]$ lsnrctl status addb

复制代码
LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 21-10月-2019 04:16:13
Copyright (c) 1991, 2016, Oracle.  All rights reserved.
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1522)))
LISTENER 的 STATUS
------------------------
别名                      addb
版本                      TNSLSNR for Linux: Version 12.2.0.1.0 - Production
启动日期                  21-10月-2019 04:15:15
正常运行时间              0 天 0 小时 0 分 58 秒
跟踪级别                  off
安全性                    ON: Local OS Authentication
SNMP                      OFF
监听程序参数文件          /usr/local/Oracle/Product/11.2.0/network/admin/listener.ora
监听程序日志文件          /usr/local/Oracle/diag/tnslsnr/oracle12c/addb/alert/log.xml
监听端点概要...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1522)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle12c)(PORT=1522)))
服务摘要..
服务 "addb" 包含 1 个实例。
  实例 "addb", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
命令执行成功
复制代码

创建user表空间

SQL> select name from v$database;

SQL> CREATE SMALLFILE TABLESPACE "USERS" LOGGING DATAFILE \'/usr/local/Oracle/oradata/addb/user01.dbf\' SIZE 1000M REUSE EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;

SQL> ALTER DATABASE DEFAULT TABLESPACE "USERS";

SQL> create spfile from pfile;

使用system用户编译

SQL> @/usr/local/Oracle/Product/11.2.0/sqlplus/admin/pupbld.sql

SQL> @/usr/local/Oracle/Product/11.2.0/sqlplus/admin/help/hlpbld.sql helpus.sql

SQL> select * from all_tab_comments;

SQL> select * from user_tab_comments;

SQL> select * from all_col_comments;

以上是关于oracle怎么创建带有sysdba权限用户的主要内容,如果未能解决你的问题,请参考以下文章

oracle新建用户有dba权限却sysdba方式登陆失败

Oracle用户为啥都可以以sysdba身份登录

在oracle里安装TRSWCM时错误ORA-28009以sysdba或sysoper身份建立sys连接怎么解决,谢谢

翻译Oracle文档--SYSDBA和SYSOPER系统权限

oracle创建数据库权限不足,怎么弄啊

oracle sys 权限不足