AG阅读总结2——用户登录

1、区分dba,sysdba ,sysoper三者区别:

dba:只是一个角色。这个角色有个各种权限。

sysdba:这个难于理解,但是我可以把它理解成 拥有特定权限的一个身份。

当我们执行这样一句话:conn scott/liu123 as sysdba.这时,scott用户以sysdba的身份登录数据库。非常值得注意的是,这时的用户是SYS。 我们可以执行 show user 来验证。其输出结果为 user is "SYS"。

sysoper:这也是一个拥有特定权限的一个身份,scott用户以sysoper的身份登录数据这时,用户是PUBLIC。 我们可以执行 show user 来验证。其输出结果为 user is "PUBLIC"。

总结:

sysdba拥有最高的系统权限,登陆后是 sys
sysoper主要用来启动、关闭数据库,但是不能查询数据字典表。(关于集体测试参照:http://blog.csdn.net/changyanmanman/article/details/7354353)

sysoper 登陆后用户是 public,

sysdba和sysoper属于system privilege,也称为administrative privilege,拥有例如数据库开启关闭之类一些系统管理级别的权限sysdba和sysoper具体的权限可以看下表:


系统权限


sysdba


sysoper


区别


Startup(启动数据库)


startup


Shutdown(关闭数据库)


shutdown


alter database open/mount/backup


alter database open/mount/backup


改变字符集


none


create database(创建数据库)


None不能创建数据库


drop database(删除数据库)


none


create spfile


create spfile


alter database archivelog(归档日志)


alter database archivelog


alter database recover(恢复数据库)


只能完全恢复,不能执行不完全恢复


拥有restricted session(会话限制)权限


拥有restricted session权限


可以让用户作为sys用户连接


可以进行一些基本的操作,但不能查看用户数据


登录之后用户是sys


登录之后用户是public

SYSDBA和SYSOPER系统权限允许我们在数据库打开之前以这两种身份去访问实例。

DBA 角色并未包含SYSDBA,SYSOPER这两个系统权限。他们是一类特殊的系统管理权限,允许管理员以这两种身份对数据库进行特殊的管理工作。

还有就是,不要轻易将SYSDBA,SYSOPER这两种系统权限授权给数据库的普通用户。也不要轻易将DBA角色赋给普通用户。在对数据库进行普通操作的时候,也不要以SYSDBA,SYSOPER登录。

2、用户与身份的关系:

下面举个例子:在scott用户下面创建一个测试表:

执行语句:create table admin_test(name varchar2(10)); 此时的用户方案是SCOTT。 

再执行conn scott/liu123 as sysdba.   —— 此时的方案是SYS

  select * from admin_test;

 这时会报错:ORA-00942: table or view does not exist.

这就说明,同一个用户在两个不同的方案中创建的对象,是不一样的,也不能再同个这个用户在别的方案中访问他。

3、设置REMOTE_LOGIN_PASSWORDFILE参数:

除了设置password fiel之外,给这个remote_login_passwordfile参数也是必须的,这个参数有如下值:

NONE:若给这个参数设置了这个值,那就像是password file文件不存在一样,这样没有连接特权的用户也可以进行不安全的连接。

EXCLUSIVE: 默认就是这个值,这种排他式的password 文件在一个数据库中只能允许一个实例,用这个模式时,可以运行用户添加,修改,删除一个用户。甚至你可以修改SYS用户的密码:ALTER USER SYS SET ....。

SHARED:这样的一个password file可以允许一个系统上有多个数据库,也可以允许一个数据库对应多个实例(rac)。这种模式的密码文件(password file )不能被修改,这就意味着你不能添加删除任何用户,即使你拥有sysdba权限也不行,如果你想添加删除用户,只能是先把这个参数的模式改为EXCLUSIVE,然后修改后再改为SHARED.然后再共享这个文件。

最后,如果这个参数被丢失了,那就和等于NONE是一样的。

如何设创建password file?

可以用平orapwd 命令创建此文件:


C:/>orapwd

Usage: orapwd file=<fname> password=<password> entries=<users> force=<y/n>

 

  where

    file - name of password file (mand),

    password - password for SYS (mand),

    entries - maximum number of distinct DBA and     force - whether to overwrit

OPERs (opt),

  There are no spaces around the equal-to (=) character.

 

C:/>

 

File参数:口令文件名称

Password参数:sys用户的口令

Entries参数:为其他特许的Oracle用户帐户保留的条目数量

remote_login_passwordfile参数在数据库的哪里呢?怎么设置它呢?来,咱们慢慢来:

首先这个remote_login_passwordfile参数在init.ora初始化文件中,其具体目录为$ORACLE_HOME/dbs/init.ora. 用vi编辑器加上remote_login_passwordfile=EXCLUSIVE这句。

行了,可以在sqlplus中查看了:

 


SQL> show parameter remote_login_passwordfile

 

NAME                                 TYPE        VALUE

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

remote_login_passwordfile            string      EXCLUSIVE

SQL>

 

EXCLUSIVE值:该参数说明只有一个数据库可以使用这个口令文件。在这种模式下,口令文件可以包含用于多个特许的Oracle账户的口令。这是推荐的操作模式,特别是在运行RMAN时。如果希望将RMAN与来自于远程客户端的数据库连接,则必须使用该参数设置。

 需要注意的是:这个参数不是动态参数。需要在数据库加载到MOUNT状态下修改,另外改变以后需要重新启动数据库,参数的设置才能够生效。

如何添加用户到password file中:

当你给一个用户赋予了SYSDBA或SYSOPER权限之后,这个用户的名字和权力的信息就被加入到了password file中,注意此时的模式必须是EXCLUSIVE的,如果是别的就会报错。

当一个用户的SYSDBA或SYSOPER权限被收回了,那就把相应的信息从password file中删除。

这两种权限是不能授权给某个角色的,因为角色必须是数据库启动后才能用,但是这两权限应该是操作系统角色可用的。数据库未启动之前就可以授权给某个用户。

下面是练习者自己加一个用户:

create user liu identified by liu555; ——成功创建一个新的用户。

给liu用户赋权sysdba: grant sysdba to liu 。

好了出问题了:ORA-01994: GRANT failed: password file missing or disabled.

ymptoms of The Error:
-------------------------
In unix system whenever you tried to grant sysdba privilege to a user it returns with error.

ORA-01994: GRANT failed: password file missing or disabled.

Cause of The Problem:
------------------------
The oracle software owner is not the owner of the passwordfile.

Solutions of The Problem:
----------------------------
1)Log on to Unix box as the same user who owns the file $ORACLE_HOME and create the password file as follows.

$orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=password entries=4 force=y

(注意文件名:应该为orapw$ORACLE_SID,否则无法识别。我就犯了这个错误)

2)Now grant sysdba privilege to the users that you need. Check V$PWFILE_USERS about the entry.

SQL>GRANT SYSDBA to SYSTEM; ——这是原来的。

我的是:grant sysdba to liu。 ——授权成功。

Check V$PWFILE_USERS about the entry:

用 select * from v$PWFILE_USERS.查看。

3)Check the owner of $ORACLE_HOME/dbs/orapw$ORACLE_SID

This would typically,

SQL> !ls -l $ORACLE_HOME/dbs/orapw$ORACLE_SID
-rw-r----- 1 oracle oinstall 1536 Apr 23 16:31 /oracle/app/oracle/product/10.2.0/db_1/dbs/orapwdata1

4)If it is not to dba then change the ownership by

$chown oracle:dba $ORACLE_HOME/dbs/orapw$ORACLE_SID

Also change permission by,

$chmod 4640 $ORACLE_HOME/dbs/orapw$ORACLE_SID

Related Documents:

时间: 2024-11-02 01:55:52

AG阅读总结2——用户登录的相关文章

用户登录AG后,跳出拒绝访问错误

一用户登录AG后,跳出拒绝访问错误. 如下: 分析错误如下: 1.首先本地尝试登录Web Interface, 结果:没有问题. 2.查看事件日志 错误如下: 从错误可以看出,在安全通道未建立信任关系, 错误应该是证书问题, 解决方法: 在Web Interface上检查证书,看根证书是否在信任区里, 或者删除根证书,重新导入. 本文出自 "Citrix Cloud" 博客,请务必保留此出处http://shenhj.blog.51cto.com/829152/562206

Flash和ASP实现的用户登录/注册程序

核心提示:Flash和ASP实现的用户登录/注册程序教程. Flash一帧可以完成.asp也可以一个文件完成,这里我将用户登录和用户注册分为两步做,方便大家理解,Flash分两帧,asp分两个文件. 准备: Flash8 , IIS ,Miscrosoft Access 2003; 开始: 数据库中: 用设计视图新建一个名为 UserTable 的表,三个字段分别为 id 为自动编号,username为文本,password为文本; 输入一条数据 username 和 password 都为ch

图文演示Flash+ASP实现用户登录/注册程序第1/2页_Flash As

Flash一帧可以完成.asp也可以一个文件完成,这里我将用户登录和用户注册分为两步做,方便大家理解,Flash分两帧,asp分两个文件. 准备: Flash8 , IIS ,Miscrosoft Access 2003; 开始: 数据库中: 用设计视图新建一个名为 UserTable 的表,三个字段分别为 id 为自动编号,username为文本,password为文本;输入一条数据 username 和 password 都为chooseflash; 如图: Flash中: 新建文件命名为l

小众社交网络上阅读或分享用户更加活跃

其实Facebook并不能话嗦是用户情有独钟的内容分享和消费网站. 美国用户现在拥有了很多的社交网络可供他们选择.虽然Facebook在用户数量上依然是王者.但是其他网站在内容分享上面反而得到胜利,而有些网站则是在内容阅读方面更Facebook胜一筹. 现在有将近7/10的美国Linkedin用户表示他们使用这个网站还是以关注为主,但是他们自己却很少发表内容,而有10%的人使用来分享照片或者状态更新,而根据Harris Interactive为Mylife在2012年的7月所做调研,这个比例其实

关于Linux用户登录密码的生成

一.从自动化需求说起 如何生成一个Linux用户登录密码?可能有人会说用passwd生成.的确,passwd命令能够帮助我们重置用户登录密码,但是这并没有解答如何生成一个Linux用户登录密码的疑问. 对于这个问题,秉承着实用主义的精神,我原本也不会去深究.毕竟,安装的时候会设置密码,安装完毕后能通过passwd命令重置密码,学会这两点后已满足一般的需求已经绰绰有余了. 但是,对于自动化而言,知道以上的两点是不够的.Linux的自动化安装过程中,设置用户登录密码这事,肯定不能有人为干预,否则谈什

php cookie用户登录的详解及实例代码

php cookie用户登录的实现 HTML源码: <html> <head> <title>php cookie用户登录的实现</title> </head> <body> <form name="forml" method="POST" action="CookieBasedPasswordLogin.php"> <table> <tr>

拒绝平庸:浅谈用户登录页面的设计表现形式

用户活跃度是检验产品成功与否的重要指标之一,传统行业的商家极为重视门面的装潢,因为一个好的门面可以聚集人气,招揽更多的顾客.古时候的大户人家院子门口的石狮子或其他的摆件的摆放极为讲究,有一定的风水学说道理,更能彰显主人家的身份地位.由此可见,"门面'就如人的脸面之于人的形象一样重要,而WEB的登录页面就相当传统的"门面". 现在越来越多的大型网站把登录和首页放在一起设计,由此可见登录页面的重要性,一个出彩的登录界面,将提升产品的品质,赋予产品独特的气质,登录界面也是一个发挥情

JSP 用户登录处理界面显示空白怎么解决

问题描述 JSP 用户登录处理界面显示空白怎么解决 <%@ page language=""java"" contentType=""text/html; charset=GBK""%><%@ page import=""java.sql.*""%><html> <head> <title>业务处理页面</title>

java struts2-怎样利用Java 中的struts2框架实现数据库中用户登录功能?

问题描述 怎样利用Java 中的struts2框架实现数据库中用户登录功能? 在Action中LoginAction怎样写? 配置文件中怎样写? 总体实现能够使数据库中已经存在的用户凭自己的密码与用户名登录成功呢?数据库是Oracle数据库.