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 数据库创建新用户的主要内容,如果未能解决你的问题,请参考以下文章