oracle 数据库创建新用户

Posted

tags:

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

首先oracle的登陆的机制有两种
一种是操作系统认证
也就是说你只要在os级别具有oracle.dba的所属用户以及所属组的权限那么即使不输入密码(sqlnet没具体设置)
sqlplus
/
as
sysdba
这样就可以登陆了。
第二种就是需要输入用户名以及密码(sqlnet设置了限制)
在系统没有启动的时候
实际上是密码文件验证,如果系统启动的话
那么是数据库内部的表来验证。
dba实际是角色的概念
他是具有一组权限的集合
,角色可以赋予任何一个用户,使该用户具有很多权限。sysdba以及sysoper是身份。具有该身份的用户,具体包括dba角色以及启动数据库的权限。
另外
oracle11g以前
用户名是不区分大小写的。11g以后用户名区分大小写
你描述的问题很模糊,有点无法分析
navicat一般用来连接mysql的吧,pl/sql
developer
和toad连接oracle的比较常见
参考技术A 首先,“把身份换成DBA"
时,
你是用的本地操作系统认证登录,以sys用户身份登录的,不管你写不写用户名密码都是一样的。你可以执行
show
user命令检查当前用户。
其次,正常来说,用户名在数据库里是用大写存贮的。你建立时是小写,到数据库里还是给你变成大写。密码是大小写敏感的。
按你的描述,最大的嫌疑是navicat这个工具有问题。也许它是用什么办法把小写的用户名存储进数据库了。没有你的环境我也没法验证。你可以再试一次,然后以dba登录数据库,查看dba_users表里的username这一列,看看里面是怎么样的
参考技术B 创建用户用“create
user”命令进行实现。
sql:CREATE
USER
username
IDENTIFIED
BY
passwordName
---创建用户名,密码
DEFAULT
TABLESPACE
users---默认表空间
TEMPORARY
TABLESPACE
temp
;
--临时表空间
备注:创建用户具有唯一性,所以不要重复创建同一个名称的用户,否则会报错。
参考技术C 1.创建
create
user
aaa
identified
by
aa2011
default
tablespace
test
quota
10m
on
users;
用户名:aaa
密码:aa2011
表空间:test
2.授权(将对表空间的所有操作功能,赋给新创建的用户)
grant
connect,resource,dba,sysdba
to
aaa
;
参考技术D dba身份登录、不需要账号密码就能登录
/
as
sysdba。
oracle的账号密码机制、
密码不能纯数字、

Oracle 12c 创建新的数据库实例用户

前提:安装好了Oracle 12c数据库,已有一个数据库实例xe,登录用户/密码:system/oralce

我用的是docker安装的Oracle 12c的实例:

docker run --name <docker_name> -d -p 8080:8080 -p 1521:1521 -v /home/<user>/docker/data/oracle_1521:/u01/app/oracle sath89/oracle-12c

具体参考 https://hub.docker.com/r/sath89/oracle-12c/

Note:用“-e VNC_PASSWORD=<password>"好像不起作用,连接时还是需要默认的密码oracle去连接。

 

1. 用oracle用户登录到Oracle 12c所在机器

2. 改变ORACLE_SID的值,假如想创建一个数据库实例mydb

ORACLE_SID=mydb
export ORACLE_SID

如需要请修改oracle用户的登录初始文件,以便以后每次登录都让ORACLE_SID是mydb

 

3. 用dbca创建数据库实例mydb

dbca -silent -createDatabase -templateName General_Purpose.dbc -gdbname mydb.example.com -sid mydb -responseFile NO_VALUE -characterSet AL32UTF8 -memoryPercentage 30 -emConfiguration LOCAL

提示输入密码时输入oracle

 

4. 创建完成后,用sqlplus连接Oracle

sqlplus "/as sysdba"

5. 先关闭数据库实例(具体我也不知道需不需要,不太懂Oracle,关掉的是不是已有的xe,我也试)

SHUTDOWN immediate;

6. 启动新创建的数据库实例

startup force

“startup force”之前我还运行了一次“startup nomount”,不知道这步需不需要,最后是startup force后新的mydb SID起来了

 

7. 用system/oracle连接mydb SID

SQL> conn system/oracle
Connected.
SQL> select name from v$datafile;

NAME
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/mydb/system01.dbf
/u01/app/oracle/oradata/mydb/sysaux01.dbf
/u01/app/oracle/oradata/mydb/undotbs01.dbf
/u01/app/oracle/oradata/mydb/users01.dbf

看到tablespace文件都在mydb目录下

 

8. 创建新的tablespace dev1

SQL> create tablespace DEV1 datafile /u01/app/oracle/oradata/neuron/DEV1.dbf size 3000m;

9. 创建新的用户dev1

SQL> create user dev1 identified by password default tablespace DEV1;

10. 赋权限

SQL> grant dba,connect to dev1;

11. 提交修改

SQL> commit;

12. 退出sqlplus,用新的用户/密码: dev1/password就能登录了

[email protected]<host>:/$ sqlplus

SQL*Plus: Release 12.1.0.2.0 Production on Wed Oct 18 00:40:14 2017

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

Enter user-name: dev1
Enter password:
Last Successful login time: Tue Oct 17 2017 08:30:44 +00:00

Connected to:
Oracle Database 12c Standard Edition Release 12.1.0.2.0 - 64bit Production

SQL>

 

以上是关于oracle 数据库创建新用户的主要内容,如果未能解决你的问题,请参考以下文章

怎么用 PLSQL Developer 创建新的oracle数据库

PLSQL怎么创建oracle数据库用户

linux 下如何创建oracle 新用户

PLSQL怎么创建oracle数据库用户

oracle 安装完了,怎么创建用户和数据库???

PLSQL怎么创建oracle数据库用户