用户、权限和角色管理

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

用户、权限和角色管理

一、用户管理涉及的一些选项

1、用户名唯一、以字母开头、不能包括特殊字符、最长30个.

2、要有一种认证方式,通常采用密码认证(登录时提供用户名和密码)

3、默认表空间

Oracle10g中定义了一种数据库级别的默认表空间,如果用户没有定义默认表空间,那么就使用这个作为自己的默认表空间,10g以前,如果没有指定默认表空间,那么就使用system表空间,这显然不合理,因此建立一个数据库级别的表空间很有意义!

4、默认临时表空间

临时表空间最经典的使用就是在排序的时候,PGA容纳不了排序所产生的临时数据,9i开始可以指定数据库级别的默认临时表空间.

5、配置文件

用来控制用户密码策略、以及资源使用的配置信息

6、用户组

7、锁定状态

二、两个重要用户:sys和system

1、数据库建立以后,会产生这两个重要的用户

2、sys是超级管理员,必须作为sysdba登录,因为sys的权限太大,使用sysdba登录

后,审计文件会记录登录的时间信息,system没有sys的权限大.

3、最常用的做法是:日常管理中,不要使用sys和system登录数据库,而是建立一个用

户、并赋予DBA权限,使用该用户进行日常的管理工作.

数据库验证

创建用户表空间

create tablespace user01

logging

datafile '/u01/app/oracle/oradata/YJ/datafile/user01.dbf'

size 50m

autoextend on

next 32m maxsize 2048m

extent management local;

建立用户

create user devep identified by devep

default tablespace user01

temporary tablespace temp

quota 3M on user01

password expire;

其中:

IDENTIFIED BY

用于指定用户口令(数据库验证)

DEFAULT TABLESPACE

用于指定用户的默认表空间,建立数据对象(表、索引和簇)时,如果没有指定默认表空间,oracle会将system表空间作为用户的默认表空间.

TEMPORARY TABLESPACE

用于指定用户临时表空间,当用户执行排序操作时,若临时数据尺寸超过PG

A工作区,则会在该表空间建立临时段.

quota 3M on user01

如果建立用户时没有为表空间指定QUOTA子句,那么用户在特定表空间上的配额为0,用户将不能在相应表空间上建立数据对象

PASSWORD EXPIRE

SQL> connect devep/devep

ERROR:

ORA-01045: user DEVEP lacks CREA TE SESSION privilege; logon denied

由于没有给用户devep赋予登录数据库权限,这里报错01045

SQL> show user

USER is "SYS"

SQL> grant create session,create table to devep;

SQL> connect devep/devep

Connected.

SQL> show user

USER is "DEVEP" 可以登录了!

建表

SQL> create table t1(cola int);

显示表t1所在的表空间

select tablespace_name from user_segments where segment_name='T1'; 这里要用大写

TABLESPACE_NAME

------------------------------

USER01 ---------------- 建立用户devep时指定的默认表空间

查看devep用户在表空间上的配额使用情况,where=DEVEP这里要用大写desc dba_ts_quotas

select username,tablespace_name,bytes,max_bytes from dba_ts_quotas where username='DEVEP'; USERNAME T ABLESPACE_NAME BYTES MAX_BYT ES

------------------------------ ------------------------------ ---------- ----------

DEV EP USER01 65536 3145728

建立user02表空间

create tablespace user02

logging

datafile '/u01/app/oracle/oradata/YJ/datafile/user02.dbf'

size 50m

autoextend on

next 32m maxsize 2048m

extent management local;

用户devep尝试在user02表空间建t2表

create table t2 (cola int) tablespace user02;

create table t2 (cola int) tablespace user02

*

ERROR at line 1:

ORA-01950: no privileges on tablespace 'USER02' 提示没有权限!这里稍后解决!

用于指定口令到期,最终强制用户在登录是改变口令

外部认证:操作系统认证

一个操作系统用户的账号是oracle,那么在数据库里面需要建立一个用户叫做ops$oracle,选择外部认证,这个用户登陆操作系统以后,就可以直接登陆数据库了,因为操作系统已经认证了这个用户.

CREATE USER "OPS$ORACLE" PROFILE "DEFAULT" IDENTIFIED EXTERNALLY DEFAUL T TABLESPACE "USERS" TEMPORARY TABLESPACE "TEMP" ACCOUNT UNLOCK; GRANT "CONNECT" TO "OPS$ORACLE";

1、对于普通用户来说,账号存储在数据字典的表里面,数据库没有启动以前,不能对用户进行认证。

2、对sys用户的认证方式有些特殊,因为sys用户需要在数据库还没有启动的情况下进行登录,对sys用户的认证主要有两种方式

操作系统认证

密码文件认证

操作系统认证

unix下面,如果用户属于DBA组,那么用户登录操作系统后就可以使

用sysdba进行登录

windows下面,如果用户属于ora_dba组,那么用户登录操作系统以

后,可以使用sysdba进行登录

是否使用操作系统认证,还取决于一个设置

在文件/u01/app/oracle/product/10.2.0/db_1/network/admin/ sqlnet.ora中如果下面这条记录的值为NONE:表示不能使用操作系统进行认证

SQLNET.AUTHENTICA TION_SERVICES=(NONE)

当SQLNET.AUTHENTICA TION_SERVICES=(NTS)时,或者没有这条记录,表示可以使用操作系统进行认证。

在数据库服务器上使用sqlplus / 即可登录oracle

远程连接oracle使用sqlplus /@YJ

远程登录Oracle,如何实现sys认证,就需要使用口令文件远程登录ORACLE,必须提供sys的密码,这是安全要求。但是密码文件有不能放在数据字典里面,只能存放在另外一个位置,那就是密码文件

1、在服务器上的密码文件

UNIX上位于$ORACLE_HOME/dbs

WINDOWS上位于$ORACL_HOME/database

ll /u01/app/oracle/product/10.2.0/db_1/dbs/orapwYJ

-rw-r----- 1 oracle oinstall 1536 Jan 29 19:49 /u01/app/oracle/product/10.2.0/db_1/dbs/orapwYJ 密码文件的文件名以$ORACLE_SID结尾,所以要与$ORACLE_SID一致

相关文档
最新文档