Oracle中的用户、角色、权限(一)

一、用户的创建

 

在oracle中,用户与schema是一一对应的关系,在创建一个用户的同时也就创建了一个相应的schema。所谓的schema就是指该用户下所有对象的集合。在创建一个用户的时候,若不显示指定表空间跟临时表空间,则会使用系统的默认表空间跟临时表空间。一般在创建用户的时候都会指定一个表空间,否则有可能使用系统的默认表空间(system表空间)。


通过database_properties数据字典可以查询数据库的默认表空间、临时表空间及其他信息:

 

SQL> desc database_properties;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 PROPERTY_NAME                             NOT NULL VARCHAR2(30)
 PROPERTY_VALUE                                     VARCHAR2(4000)
 DESCRIPTION                                        VARCHAR2(4000)

SQL> select property_name,property_value from database_properties;
PROPERTY_NAME                  PROPERTY_VALUE
------------------------------ ------------------------------
DICT.BASE                      2
DEFAULT_TEMP_TABLESPACE        TEMPTS
DEFAULT_PERMANENT_TABLESPACE   TBS_1
DBTIMEZONE                     +08:00
DEFAULT_TBS_TYPE               SMALLFILE
NLS_LANGUAGE                   AMERICAN
NLS_TERRITORY                  AMERICA
NLS_CURRENCY                   $
NLS_ISO_CURRENCY               AMERICA
NLS_NUMERIC_CHARACTERS         .,
NLS_CHARACTERSET               ZHS16GBK
NLS_CALENDAR                   GREGORIAN
NLS_DATE_FORMAT                DD-MON-RR
NLS_DATE_LANGUAGE              AMERICAN
NLS_SORT                       BINARY
NLS_TIME_FORMAT                HH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT           DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT             HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT        DD-MON-RR HH.MI.SSXFF AM TZR
NLS_DUAL_CURRENCY              $
NLS_COMP                       BINARY
NLS_LENGTH_SEMANTICS           BYTE
NLS_NCHAR_CONV_EXCP            FALSE
NLS_NCHAR_CHARACTERSET         AL16UTF16
NLS_RDBMS_VERSION              10.2.0.1.0
GLOBAL_DB_NAME                 ORCL
EXPORT_VIEWS_VERSION           8

27 rows selected.

 

 

通过dba_tablespaces数据字典可以查询到数据库中已创建的表空间的相关信息:

 

SQL> desc dba_tablespaces;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 TABLESPACE_NAME                           NOT NULL VARCHAR2(30)
 BLOCK_SIZE                                NOT NULL NUMBER
 INITIAL_EXTENT                                     NUMBER
 NEXT_EXTENT                                        NUMBER
 MIN_EXTENTS                               NOT NULL NUMBER
 MAX_EXTENTS                                        NUMBER
 PCT_INCREASE                                       NUMBER
 MIN_EXTLEN                                         NUMBER
 STATUS                                             VARCHAR2(9)
 CONTENTS                                           VARCHAR2(9)
 LOGGING                                            VARCHAR2(9)
 FORCE_LOGGING                                      VARCHAR2(3)
 EXTENT_MANAGEMENT                                  VARCHAR2(10)
 ALLOCATION_TYPE                                    VARCHAR2(9)
 PLUGGED_IN                                         VARCHAR2(3)
 SEGMENT_SPACE_MANAGEMENT                           VARCHAR2(6)
 DEF_TAB_COMPRESSION                                VARCHAR2(8)
 RETENTION                                          VARCHAR2(11)
 BIGFILE                                            VARCHAR2(3)


SQL> select tablespace_name,contents from dba_tablespaces;

TABLESPACE_NAME                CONTENTS
------------------------------ ---------
SYSTEM                         PERMANENT
UNDOTBS                        UNDO
SYSAUX                         PERMANENT
TBS_1                          PERMANENT
MYTBS                          PERMANENT
TEMPTS                         TEMPORARY

6 rows selected.

 

 

通过以下语句可以创建一个用户:

 

SQL> create user mytbs identified by mytbs default tablespace mytbs;

User created.

 

 

此时可以通过查询dba_users数据字典来查询数据库中已建立的用户的相关信息:

 

SQL> desc dba_users
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 USERNAME                                  NOT NULL VARCHAR2(30)
 USER_ID                                   NOT NULL NUMBER
 PASSWORD                                           VARCHAR2(30)
 ACCOUNT_STATUS                            NOT NULL VARCHAR2(32)
 LOCK_DATE                                          DATE
 EXPIRY_DATE                                        DATE
 DEFAULT_TABLESPACE                        NOT NULL VARCHAR2(30)
 TEMPORARY_TABLESPACE                      NOT NULL VARCHAR2(30)
 CREATED                                   NOT NULL DATE
 PROFILE                                   NOT NULL VARCHAR2(30)
 INITIAL_RSRC_CONSUMER_GROUP                        VARCHAR2(30)
 EXTERNAL_NAME                                      VARCHAR2(4000)

SQL> select username,password from dba_users;

USERNAME                       PASSWORD
------------------------------ ------------------------------
DBSNMP                         E066D214D5421CCC
DIP                            CE4A36B8E06CA59C
TSMSYS                         3DF26A8B17D0F29F
SYSTEM                         D4DF7931AB130E37
SYS                            4DE42795E66117AE
MYTBS                          C7618B865F241C60
OUTLN                          4A3BA55E08595C81

7 rows selected.
 

在oracle中也支持操作系统认证的用户,具体创建方法如下:

 

--显示oracle中的默认操作系统认证用户的用户名前缀
--即os_authent_prefix参数
SQL> show parameter os 

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
optimizer_index_cost_adj             integer     100
os_authent_prefix                    string      ops$
os_roles                             boolean     FALSE
remote_os_authent                    boolean     FALSE
remote_os_roles                      boolean     FALSE
timed_os_statistics                  integer     0

SQL> create user ops$test identified externally default tablespace test;

User created.

 

同时在linux下建立test用户,并设置相应的环境变量(ORACLE_SID、ORACLE_HOME、PATH等):

 

[root@localhost etc]# useradd test -g dba -G dba
[root@localhost etc]# id test
uid=501(test) gid=500(dba) groups=500(dba)
[root@localhost etc]# passwd test
Changing password for user test.
New UNIX password: 
BAD PASSWORD: it is too short
Retype new UNIX password: 
passwd: all authentication tokens updated successfully.

[root@localhost test]# cp /home/oracle/.bash_profile /home/test/
cp:是否覆盖‘/home/test/.bash_profile’? yes

[root@localhost test]# su - test
[test@localhost ~]$ id
uid=501(test) gid=500(dba) groups=500(dba) 
[test@localhost ~]$ echo $ORACLE_SID
orcl
[test@localhost ~]$ sqlplus /

SQL*Plus: Release 10.2.0.1.0 - Production on Tue Feb 22 14:49:43 2011

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

ERROR:
ORA-01045: user OPS$TEST lacks CREATE SESSION privilege; logon denied
--以上错误主要是因为我们没有赋给该用户相应的权限,在下文中将介绍权限
 

 

以上主要介绍了用户的创建,在创建用户的时候可以给该用户指定更多的参数,具体可以到oracle官方联机文档(Oracle SQL Reference)里查。当然,此时建立的用户并不能登录oracle,因为还没有相应的权限,在下一篇文章中将介绍这部分内容。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值