文档库 最新最全的文档下载
当前位置:文档库 › oracle用户解锁三种方法

oracle用户解锁三种方法

oracle用户解锁三种方法
oracle用户解锁三种方法

ORA-28000: the account is locked-的解决办法

2009-11-11 18:51

ORA-28000: the account is locked

第一步:使用PL/SQL,登录名为system,数据库名称不变,选择类型的时候把Normal修改为Sysdba;

第二步:选择myjob,查看users;

第三步:选择system,右击点击“编辑”;

第四步:修改密码,把“帐户被锁住”的勾去掉;

第五步:点击“应用”再点击“关闭”;

第六步:重新登录就可以通过验证了;

第二种

ALTER USER username ACCOUNT UNLOCK;

第三种

在plsql developer中要是以scott/tiger登录时提示ora-28000 the account is locked。

解决办法:

新装完Oracle10g后,用scott/tiger测试,会出现以下错误提示:

oracle10g the account is locked

oracle10g the password has expired

原因:默认Oracle10g的scott不能登陆。

解决:

(1)conn sys/sys as sysdba; //以DBA的身份登录

(2)alter user scott account unlock;// 然后解锁

(3)conn scott/tiger //弹出一个修改密码的对话框,修改一下密码就可以了

在运行里面输入cmd在DOS模式下输入sqlplus,以system用户名登录,密码是刚装oracle 时自己填写的密码orcl,登录进去以后。

SQL> conn sys/sys as sysdba; (分号是必须的但是我是以system登录的所在这不应该写conn sys/sys as sysdba应该写conn system/orcl as sysdba;)

Connected.

SQL> alter user scott account unlock;

User altered.

SQL> commit;

Commit complete.

SQL> conn scott/tiger//请输入新密码,并确认后OK

Password changed

Connected.

这时再到plsql developer里面以scott/tiger登录就可以了。。。。。

Oracle 10g 默认安装带来的用户名/密码

Username

Password

Description

See Also

CTXSYS

CTXSYS

The Oracle Text account

Oracle Text Reference

DBSNMP

DBSNMP

The account used by the Management Agent component of Oracle Enterprise Manager to monitor and manage the database

Oracle Enterprise Manager Grid Control Installation and Basic Configuration

LBACSYS

LBACSYS

The Oracle Label Security administrator account

Oracle Label Security Administrator's Guide

MDDA TA

MDDA TA

The schema used by Oracle Spatial for storing Geocoder and router data

Oracle Spatial User's Guide and Reference

MDSYS

MDSYS

The Oracle Spatial and Oracle interMedia Locator administrator account

Oracle Spatial User's Guide and Reference

DMSYS

DMSYS

The Oracle Data Mining account.

Oracle Data Mining Administrator's Guide

Oracle Data Mining Concepts

OLAPSYS

MANAGER

The account used to create OLAP metadata structures. It owns the OLAP Catalog (CWMLite). Oracle OLAP Application Developer's Guide

ORDPLUGINS

ORDPLUGINS

The Oracle interMedia user. Plug-ins supplied by Oracle and third party format plug-ins are installed in this schema.

Oracle interMedia User's Guide

ORDSYS

ORDSYS

The Oracle interMedia administrator account

Oracle interMedia User's Guide

OUTLN

OUTLN

The account that supports plan stability. Plan stability enables you to maintain the same execution plans for the same SQL statements. OUTLN acts as a role to centrally manage metadata associated with stored outlines.

Oracle Database Performance Tuning Guide

SI_INFORMTN_SCHEMA

SI_INFORMTN_SCHEMA

The account that stores the information views for the SQL/MM Still Image Standard

Oracle interMedia User's Guide

SYS

CHANGE_ON_INSTALL

The account used to perform database administration tasks

Oracle Database Administrator's Guide

SYSMAN

CHANGE_ON_INSTALL

The account used to perform Oracle Enterprise Manager database administration tasks. Note that SYS and SYSTEM can also perform these tasks.

Oracle Enterprise Manager Grid Control Installation and Basic Configuration

SYSTEM

MANAGER

Another account used to perform database administration tasks

Oracle用户被锁定解决方法

Oracle用户被锁定解决方法 分类:oracle管理2011-12-27 11:183692人阅读评论(0)收藏举报oraclelogindatesessionusersql 1、用dba角色的用户登陆,进行解锁,先设置具体时间格式,以便查看具体时间 SQL> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss'; Session altered. 2、查看具体的被锁时间 SQL> select username,lock_date from dba_users where username='TEST'; USERNAME LOCK_DATE TEST 2009-03-10 08:51:03 3、解锁 SQL> alter user test account unlock; User altered. 4、查看是那个ip造成的test用户被锁 查看$ORACLE_HOME/network/admin/log/listener.log日志 10-MAR-2009 08:51:03 * (CONNECT_DATA=(SID=lhoms)(SERVER=DEDICATED)(CID=(PROGRAM=oracle)(HO ST=omstestdb)(USER=oraoms))) * (ADDRESS=(PROTOCOL=tcp)(HOST=10.69.1.11)(PORT=49434)) * establish * lhoms * 0 10-MAR-2009 08:51:03 * (CONNECT_DATA=(SID=lhoms)(SERVER=DEDICATED)(CID=(PROGRAM=oracle)(HO ST=omstestdb)(USER=oraoms))) * (ADDRESS=(PROTOCOL=tcp)(HOST=10.69.1.11)(PORT=49435)) * establish * lhoms * 0 这样可知是上面10.69.1.11的ip尝试多次失败登陆造成的被锁 注: 一般数据库默认是10次尝试失败后锁住用户 1、查看FAILED_LOGIN_ATTEMPTS的值 select * from dba_profiles where RESOURCE_NAME = 'FAILED_LOGIN_ATTEMPTS'; 2、修改为30次 alter profile default limit FAILED_LOGIN_ATTEMPTS 30; 3、修改为无限次(为安全起见,不建议使用) alter profile default limit FAILED_LOGIN_ATTEMPTS unlimited;

【VIP专享】Oracle权限、角色和用户

Oracle数据库权限、角色和用户总结 前言: ORACLE数据库系统预先定义了CONNECT 、RESOURCE、DBA、EXP_FULL_DATABASE、IMP_FULL_DATABASE五个角色。 CONNECT具有创建表、视图、序列等特权;(alter session create cluster ) RESOURCE具有创建过程、触发器、表、序列等特权、 DBA具有全部系统特权; EXP_FULL_DATABASE、IMP_FULL_DATABASE具有卸出与装入数据库的特权。 权限管理 一、权限分类 系统权限:系统规定用户使用数据库的权限。(系统权限是对用户而言)。 实体权限:某种权限用户对其它用户的表或视图的存取权限。(是针对表或视图而言的)。 二、系统权限管理: 1、系统权限分类: DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。 RESOURCE:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。 CONNECT:拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。 对于普通用户:授予connect, resource权限。 对于DBA管理用户:授予connect,resource, dba权限。 2、系统权限授权命令: [系统权限只能由DBA用户授出:sys, system(最开始只能是这两个用户)] 授权命令:SQL> grant connect, resource, dba to 用户名1 [,用户名2]...; [普通用户通过授权可以具有与system相同的用户权限,但永远不能达到与sys用户相同的权限,system用户的权限也可以被回收。] 例:

oracle期末填空题整理

1、数据操纵语言中典型的四种语句是Insert、select 、update和delete 。 2、事务处理控制语言中的Commit命令表示提交事务,而回退事务则用ROLLBACK命令表示。 3、获取字符串变量长度的函数是LENGTH。 4、Oracle数据库中,生成唯一、连续的整数的对象是SEQUENCE(序列)。 5、PL/SQL基本语句块中的声明部分使用DECLARE关键词。 6、PL/SQL中对变量进行赋值,除了使用赋值符号?:=?外,还可以使用SELECT…INTO语句。 7、显示游标中要提取数据行,应使用FETCH关键词。 8、存储过程的参数模式除了具有In和Out外,还有IN OUT模式。 1.Oracle EnterpriseManager是一个基于 B/S的框架系统。 2.Oracle数据库的存储结构分为物理结构和逻辑结构。 3.在游标或者游标变量打开后还没有进行第一次提取时,%found属性为null。 4.在oracle中已commit或rollback作为上一个事务的结束标志及下一个新事物开始的标志。 5. DML表示数据操作语言,主要的DML有SELECT,INSERT,UPDATE,DELETE. 6.索引的主要目标是提高访问的速度。 7.在Oracle database 10g 系统中,可以使用DBCA工具和CREATE DATEBASE命令两种方式创建数据库。 8.命令Startup nomount只能启动数据库实例,但不能装载和打开数据库。 9.在输入URL进入Oracle Enterprice Manager Database Control 的时候,必须指出ip 地址和端口号。 10.在登录Oracle Enterprice Manager Database Control时,连接身份有两种选择,分别为normal和sysdba。 1. RDBMS的全称是关系数据库管理系统。 2. SQL*PLUS环境中的append指令的作用是追加在表的。 3. SQL*PLUS环境中的connect指令的作用是某用户连接至数据库。 4. SQL*PLUS环境中的list指令的作用是显示备份信息,缓冲区中最后命令。 5. SQL*PLUS环境中的show指令的作用是显示当前会话的。 8. 初始化参数的文件名称为 init.ora 。 9. 建立表格的语句是create table table_name(variable variable_type);。 10. 为oracle数据库中表格的每一列设定数据类型时,常用的数据类型有 number 、 char 、 varchar 、 date 。 11. oracle数据库中包含的数据约束有唯一约束、非空约束、主键约束、外键约束、 check约束。 12. 复制一个表格可以使用 create table table_name as select * from ref_table_name 。 13. 修改已经存在的表的存储参数 pfile 。 15. 创建一个简单的用户testUser, 密码为test的语句是create user testUser identified by test; 16. 创建存储过程的语句是create or replace procedure as … begin … end; 17. 创建一个视图的语句是create view as select … from table_name___ 18. 提交一个事务使用关键字___commit_____ 19. 获得两个集合的交集使用____intersect___ 20. 写出从表A中获取从第10条到第20条的sql语句select b.* from (select *,rownum rn from table_name order by col1)

Oracle的事务及锁

1、事务的概念: 事务是一个基本的逻辑单元,它作为一个整体要么全部执行要么全部不执行。 2、事务的特性: 原子性:事务是处理的一个原子单位,每一个操作不可拆分,它要么全部执行成功,要么全部都不执行。 一致性:指事务完成时,必须使所有的数据在整体上不变。 隔离性:各事务之间相互隔离,此事务的执行不受其他并发事务执行的干扰。 持续性:指事务对数据库的改变应是持续存在的,不会因故障而发生丢失。 3、从功能是上划分,sql语言分为DDL、DML和DCL: 3.1DDL(Data Definition Language,数据定义语言): 用于定义和管理数据库中的所有对象的语言,如:create创建表空间、alter修改表空间、drop 删除表空间 3.2:DML(Data manipulation Language,数据操作语言): 处理数据等操作,如:insert插入数据、delete删除数据、update修改数据、select查询数据3.3:DCL(Data Control Language,数据控制语言): 授予或回收访问数据库的权限,控制数据库操作事务发生的时间及效果,对数据库实行监视,如:grant授权,rollback回滚,commit提交 4、事务的开始及结束: 一个事务可以由一条DDL语句单独组成或多条DML语句共同组成。一个事务从执行第一条sql语句开始,在它被提交或被回滚时结束。事务的提交可以是显式提交:用commit命令直接完成;也可以是提交隐式提交:用sql语句间接完成提交,这些语句有:alter,audit,comment,create,disconnect,drop,exit,grant,noaudit,quit,revoke,rename,会话终止等;还可以是自动提交:set autocommit on或set autocommit immediate设置为自动提交,则在插入、删除、修改语句执行后自动提交,使用set autocommit off可以取消自动提交,show autocommit可以查看自动提交是否打开。事务的回滚使用rollback;语句,可以为事务设置保存点,如:savepoint point1,然后使用rollback to [savepoint] point1回到保存点point1,若在point1后又设置了一个保存点savepoint point2,则在rollback to point1后将不能再回滚到point2,因为point2在point1的后面,point1的保存点不存在point2。 5、事务的并发性与一致性: 并发性:多个用户可以在同一时刻访问相同的数据。 一致性:保证并发性的同时,每个用户能得到一致的数据视图。 并发执行事务时,可能发生如下情况: ①脏读:某个事务读取了其他未提交事务修改过的数据。 脏读示例:提交读隔离级别可防止脏读,但不能防止不可重复读 ②不可重复读:某个事务读取一次数据后,其他事务修改了这些数据并进行了提交,这样当该事务重新读取这些数据时,就会得到与前一次读取不一致的结果。简单的说,就是同样的条件,你读取过的数据,再次读取时发现值不一样了。 不可重复读示例:可重复读隔离级别可防止脏读和不可重复读

Oracle的五种锁

Oracle的五种Table Lock Oracle中的锁定可以分为几类:DML lock(data lock),DDL lock(dictionary lock)和internal lock/latch。 DML lock又可以分为row lock和table lock。row lock在select.. for update/insert/update/delete时隐式自动产生,而table lock除了隐式产生,也可以调用lock table in name来显示锁定。 如果不希望别的session lock/insert/update/delete表中任意一行,只允许查询,可以用lock table table_name in exclusive mode。(X)这个锁定模式级别最高,并发度最小。 如果允许别的session查询或用select for update锁定记录,不允许insert/update/delete,可以用lock table table_name in share row exclusive mode。(SRX) 如果允许别的session查询或select for update以及lock table table_name in share mode,只是不允许insert/update/delete,可以用lock table table_name in share mode。(share mode和share row exclusive mode的区别在于一个是非抢占式的而另一个是抢占式的。进入share row exclusive mode后其他session不能阻止你insert/update/delete,而进入share mode后其他session也同样可以进入share mode,进而阻止你对表的修改。(S) 还有两种锁定模式,row share(RS)和row exclusive(RX)。他们允许的并发操作更多,一般直接用DML语句自动获得,而不用lock语句。 ORACLE里锁有以下几种模式: 0:none 1:null 空 2:Row-S 行共享(RS):共享表锁,sub share 3:Row-X 行独占(RX):用于行的修改,sub exclusive 4:Share 共享锁(S):阻止其他DML操作,share 5:S/Row-X 共享行独占(SRX):阻止其他事务操作,share/sub exclusive 6:exclusive 独占(X):独立访问使用,exclusive 数字越大锁级别越高, 影响的操作越多。 1级锁有:Select,有时会在v$locked_object出现。 2级锁有:Select for update,Lock For Update,Lock Row Share select for update当对话使用for update子串打开一个游标时,所有返回集中的数据行都将处于行级(Row-X)独占式锁定,其他对象只能查询这些数据行,不能进行update、delete 或select for update操作。 3级锁有:Insert, Update, Delete, Lock Row Exclusive 没有commit之前插入同样的一条记录会没有反应, 因为后一个3的锁会一直等待上一个3的锁, 我们必须释放掉上一个才能继续工作。 4级锁有:Create Index, Lock Share

Oracle 使用PROFILE管理密码

Oracle 使用PROFILE管理密码 当操作人员要连接到Oracle数据库时,需要提供用户和密码。对于黑客或某些人而言,他们可能通过猜想或反复试验来破解密码。为了加强密码的安全性,可以使用PROFILE文件管理密码。PROFILE文件提供了一些密码管理选项,它们提供了强大的密码管理功能,从而确保密码的安全。为了实现密码限制,必须首先建立PROFILE文件。建立PROFILE 文件是使用CREATE PROFILE语句完成的,一般情况下,该语句是由DBA执行的,如果要以其他用户身份建立PROFILE文件,则要求该用户必须具有CREATE PROFILE系统权限。 使用PROFILE文件可以实现如下四种密码管理:账户锁定、密码的过期时间、密码历史和密码的复杂度。 1.账户锁定 账户的锁定策略是指用户在连续输入多少次错误密码后,Oracle会自动锁定用户的账户,并且可以规定账户的锁定时间。Oracle为锁定账户提供了以下两个参数: ●FAILED_LOGIN_A TTEMPTS 该参数限制用户在登录到Oracle数据库时允许失 败的次数。一旦某用户尝试登录数据库达到该值,则系统会将该用户账户锁定。 ●PASSWORD_LOCK_TIME 用于指定账户被锁定的天数。 例如,下面创建的PROFILE文件设置连续连接失败次数为3,超过该次数后,账户锁定时间为10天,并使用ALTER USER语句将PROFILE文件分配给用户DEVELOPER。 SQL> create profile lock_account limit 2 failed_login_attempts 3 3 password_lock_time 10; 配置文件已创建 SQL> alter user developer profile lock_account; 用户已更改。 当建立LOCK_ACCOUNT文件后,并将该PROFILE分配给用户DEVELOPER用户后,如果以账户DEVELOPER身份连接到数据库,并且连续连接失败3次后,Oracle将自动锁定该用户账户。此时,即使为用户账户DEVELOPER提供正确的密码,也无法连接到数据库。 在建立LOCK_ACCOUNT文件时,由于指定PASSWORD_LOCK_TIME的参数为10,所以账户锁定天数达到10天后,Oracle会自动解锁账户。如果建立PROFILE文件时没有提供该参数,将自动使用默认值UNLIMITED。在这种情况下,需要DBA手动解锁用户账户。 2.密码的过期时间 密码的过期时间是指强制用户定期修改自己的密码,当密码过期后,Oracle会随时提醒用户修改密码。密码宽限期是指用户账户密码到期之后的宽限使用时间。默认情况下,建立用户并为其提供密码之后,密码会一直生效。为了防止其他人员破解用户账户的密码,可以强制普通用户定期改变密码。为了加强用户定期改变密码,Oracle提供了如下参数: ●PASSWORD_LIFE_TIME 该参数用于设置用户密码的有效时间,单位为天数。超 过这一段时间,用户必须重新设置口令。 ●PASSWORD_GRACE_TIME 设置口令失效的“宽限时间”。如果口令达到 PASSWORD_LOGIN_TIME设置的失效时间,设置宽限时间后,用户仍然可以使

数据库锁表与解锁

数据库锁表与解锁 一、mysql 锁定表:LOCK TABLES tbl_name {READ | WRITE},[ tbl_name {READ | WRITE},…] 解锁表:UNLOCK TABLES 例子: LOCK TABLES table1 WRITE ,table2 READ 、、、更多表枷锁; 说明:1、READ 锁代表其她用户只能读不能其她操作 2、WRITE锁代表:其她用户不能任何操作(包括读) 查瞧那些表被锁:show OPEN TABLES where In_use > 0; 全局加锁:FLUSH TABLES WITH READ LOCK(这个命令就是全局读锁定,执行了命令之后所有库所有表都被锁定只读。解锁也就是:UNLOCK TABLES ) 二、oracle --行级锁定(同样对 mysql起作用) 通过 :select * from tableName t for update 或 select * from tableName t where id =1 for update 前者锁定整个表,后者多顶 id=1的一行数据(有主键,并且指定主键=值的只 锁定指定行) 说明:通过 select 、、、 for update 后其她用户只能读不能其她操作,锁定者通过 commit或 rollback命令自动解锁,或使用本文的解锁方式

(will)! --表级锁定 lock table in mode [nowait] 其中: lock_mode 就是锁定模式 nowait关键字用于防止无限期的等待其她用户释放锁 五种模式如下(1到5 级别越来越高,限制越来越大): 1、行共享(row share,rs):允许其她用户访问与锁定该表,但就是禁止排她锁定 整个表 2、排她锁(row exclusive ,rx):与行共享模式相同,同时禁止其她用户在此表上使用共享锁。使用select 、、、 for update语句会在表上自动应用行排她锁 3、共享(share ,s):共享锁将锁定表,仅允许其她用户查询表中的行,但不允许插入、更新、删除行。多个用户可以在同一表中放置共享锁,即允许资源共享,,因此得名“共享锁”。例如:如果用户每天都需要在结账时更新日销售额表,则可以在更新该表时使用共享锁以确保数据的一致性。 4、共享排她锁(share row exclusive,srx):执行比共享锁更多的限制。防止其 她事务在表上应用共享锁,、共享排她锁以及排她锁。 5、排她(exclusive,x):对表执行最大的限制。除了允许其她用户查询该表记录, 排她锁防止其她事务对表做任何更改或在表上应用任何类型的锁。 实例: lock table table_Name in exclusive mode; 要解锁需要锁定人执行 commit 或 rollback 或者用本文的解锁方式 (will)! --查询锁表 SELECT /*+ rule */ S、USERNAME, DECODE(L、TYPE, 'TM', 'TABLE LOCK', 'TX', 'ROW LOCK', NULL) LOCK_LEVEL,

oracle hr解锁和加密

Oracle解锁与加锁(hr用户为例) [oracle@jieshi9i ~]$ sqlplus /nolog SQL*Plus: Release 9.2.0.4.0 - Production on Tue Jul 14 18:12:38 2009 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. SQL> conn sys/sys as sysdba Connected. SQL> show user USER is "SYS" 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)

ORACLE账户解锁定的方法

ORACLE账户锁定解决办法如果数据库中某个账户登录时,提示被锁定 则如果想使用此账户登录时,解决办法参考下文。 ●操作系统版本为: Microsoft Windows[版本5.2.3790] (C) 版权所有1985-2003 Microsoft Corp. ●解决方法: C:\Documents and Settings\Administrator>sqlplus /nolog SQL*Plus: Release 10.2.0.1.0 - Production on 星期三6月24 10:43:39 2009 Copyright (c) 1982, 2005, Oracle. All rights reserved. SQL> conn /as sysdba 已连接。 SQL> alter user system account unlock; 用户已更改。 SQL> exit 从OracleDatabase 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options 断开 C:\Documents and Settings\Administrator>sqlplus SQL*Plus: Release 10.2.0.1.0 - Production on 星期三6月24 10:45:26 2009 Copyright (c) 1982, 2005, Oracle. All rights reserved. 请输入用户名: system

ORACLE数据库用户与权限管理

ORACLE数据库用户与权限管理ORACLE是多用户系统,它允许许多用户共享系统资源。为了保证数据库系统的安全,数据库管理系统配置了良好的安全机制。 2.1 ORACLE数据库安全策略 建立系统级的安全保证 系统级特权是通过授予用户系统级的权利来实现,系统级的权利(系统特权)包括:建立表空间、建立用户、修改用户的权利、删除用户等。系统特权可授予用户,也可以随时回收。ORACLE系统特权有80多种。 建立对象级的安全保证 对象级特权通过授予用户对数据库中特定的表、视图、序列等进行操作(查询、增、删改)的权利来实现。 建立用户级的安全保证 用户级安全保障通过用户口令和角色机制(一组权利)来实现。引入角色机制的目的是简化对用户的授权与管理。做法是把用户按照其功能分组,为每个用户建立角色,然后把角色分配给用户,具有同样角色的用户有相同的特权。 2.2 用户管理 ORACLE用户管理的内容主要包括用户的建立、修改和删除用户的建立

2.3系统特权管理与控制 ORACLE 提供了80多种系统特权,其中每一个系统特权允许用户执行一个或一类数据库操作。 授予系统特权 回收系统特权 显示已被授予的系统特权(某用户的系统级特权) 2.4 对象特权管理与控制 ORACLE对象特权指用户在指定的表上进行特殊操作的权利。这些特殊操作包括增、删、改、查看、执行(存储过程)、引用(其它表字段作为外键)、索引等。 授予对象特权

//级联授权 回收对象特权 显示已被授予的全部对象特权 2.5 角色的管理 ORACLE的角色是命名的相关特权组(包括系统特权与对象特权),ORACLE用它来简化特权管理,可把它授予用户或其它角色。 ORACLE数据库系统预先定义了CONNECT 、RESOURCE、 DBA、 EXP_FULL_DATABASE、IMP_FULL_DATABASE五个角色。CONNECT具有创建表、视图、序列等特权;RESOURCE具有创建过程、触发器、表、序列等特权、DBA具有全部系统特权;EXP_FULL_DATABASE、 IMP_FULL_DATABASE具有卸出与装入数据库的特权。 通过查询sys.dba_sys_privs可以了解每种角色拥有的权利。 授予用户角色

Oracle中锁的产生和解锁

Oracle中锁的产品和解锁 文档修改记录 版本号日期说明编写者审核者V1.0 20110822 初稿周伟明 1Oracle锁的介绍 在多进程或者多线程业务系统中,多个Oracle用户可以同时登录到一个Oracle数据库,对数据库中的数据进行操作难免会出现同时访问同一数据(表或者表中某一条记录)的情况,如果不对这种情况进行规范操作,数据的一致性和完整性就得不到保证,从而会出现意想不到的结果,所以必须有一种机制对并发访问进行控制和调度,避免造成数据更新不正确。 Oracle锁就是这样一种机制,它是控制并发操作最常用的方法。Oracle使用锁来防止进程相互之间发生的破坏性影响,当一个进程企图阻止另外一个进程对某条数据操作时,该进程就对这个数据进行锁,别的进程对这个数据操作之前,必须获得这个数据的解锁。 Oracle锁功能是Oracle DBMS自动完成的,不需要用户干预,但Oracle也提供了加锁的命令,供用户使用。 1.1 Oracle锁机制 Oracle自动使用不同锁类型来控制数据的并发操作,以防止用户之间的破坏性干扰。Oracle为一个事务自动锁一个资源,以防止其他事务对同一个资源的排他锁。当某种条件出现或者事务不再需要该资源时,锁自动解除。Oracle自动获取不同类型的锁取决于锁的资源及其所执行的操作。其中包括数据锁(DML)、字典锁(DDL)、内部锁、人工锁定、分布锁和并行缓冲管理锁。

1.1.1数据锁(DML)模式 数据锁保证表中数据在多个用户并发操作数据时保证数据的完整性,并防止相冲突的DML和DDL操作的破坏性干扰。 DML操作可在两个级别获取数据锁:行级锁(TX)和表级锁(TM)。 表级锁有以下几种方式 ●空 Null,即无锁。 ●行共享表锁(RS) 行共享表锁(有时也叫SS),表明事务保持已锁表行的表锁,并试图修改数据。 这种锁是在执行以下命令的时自动获取: Select …From 表名… for update for …; Lock Table 表名 in Row Share Mode; 当一个事务在一个表持有行共享锁的时候,允许其他事务并行查询、插入、修改或 者删除及再进行行锁,但禁止其他事务以排他方式进行操作该表。 Lock Table 表名 in Exclusive Mode; ●行排他表锁(RX) 行排他表锁(有时也叫SX)表示该事务对该资源有独占权利,通常是在修改记录 时发生这种锁。 该锁在执行以下命令的时候自动获取: Insert Into 表名…; Update 表名…; Delete From 表名…; Lock Table 表名 In Row Exclusive Mode; 当一个事务在一个表上持有行排他锁时,允许其他事务并行查询、插入、删除、修 改或者锁同一个表的其他行,但禁止其他事务使用下列命令进行并发锁: Lock Table 表名 In Share Mode; Lock Table 表名 In Share Row Exclusive Mode; Lock Table 表名 In Exclusive Mode; ●共享表锁(S)

oracle的TM锁T锁知识完全普及

o r a c l e的T M锁、T X锁知识完全普及锁概念基础 数据库是一个多用户使用的共享资源。当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。 加锁是实现数据库并发控制的一个非常重要的技术。当事务在对某个数据对象进行操作前,先向系统发出请求,对其加锁。加锁后事务就对该数据对象有了一定的控制,在该事务释放锁之前,其他的事务不能对此数据对象进行更新操作。 在数据库中有两种基本的锁类型:排它锁(ExclusiveLocks,即X锁)和共享锁(ShareLocks,即S锁)。当数据对象被加上排它锁时,其他的事务不能对它读取和修改。加了共享锁的数据对象可以被其他事务读取,但不能修改。数据库利用这两种基本的锁类型来对数据库的事务进行并发控制。 Oracle数据库的锁类型 根据保护的对象不同,Oracle数据库锁可以分为以下几大类:DML锁(datalocks,数据锁),用于保护数据的完整性;DDL锁(dictionarylocks,字典锁),用于保护数据库对象的结构,如表、索引等的结构定义;内部锁和闩(internallocksandlatches),保护数据库的内部结构。 DML锁的目的在于保证并发情况下的数据完整性,。在Oracle数据库中,DML锁主要包括TM锁和TX锁,其中TM锁称为表级锁,TX锁称为事务锁或行级锁。 当Oracle执行DML语句时,系统自动在所要操作的表上申请TM类型的锁。当TM锁获得后,系统再自动申请TX类型的锁,并将实际锁定的数据行的锁标志位进行置位。这样在事务加锁前检查TX 锁相容性时就不用再逐行检查锁标志,而只需检查TM锁模式的相容性即可,大大提高了系统的效率。TM锁包括了SS、SX、S、X等多种模式,在数据库中用0-6来表示。不同的SQL操作产生不同类型的TM锁。 在数据行上只有X锁(排他锁)。在Oracle数据库中,当一个事务首次发起一个DML语句时就获得一个TX锁,该锁保持到事务被提交或回滚。当两个或多个会话在表的同一条记录上执行DML语句时,第一个会话在该条记录上加锁,其他的会话处于等待状态。当第一个会话提交后,TX锁被释放,其他会话才可以加锁。 当Oracle数据库发生TX锁等待时,如果不及时处理常常会引起Oracle数据库挂起,或导致死锁的发生,产生ORA-60的错误。这些现象都会对实际应用产生极大的危害,如长时间未响应,大量事务失败等。 悲观封锁和乐观封锁 一、悲观封锁 锁在用户修改之前就发挥作用: Select..forupdate(nowait)

oracle 11g默认用户名、密码解锁 以及安装后重启黑屏问题

安装时选择的自动安装,由于时间久远忘记用户名、密码了,导致现在试了几个默认的用户名密码後(表格中附带默认用户名及密码),都提示无效的用户名、密码,终于在试了下dbsnmp/dbsnmp,提示被锁; 首先启动sqlplus 输入用户名:sqlplus / as sysdba 密码空缺 如果用户被锁定,记得加上 SQL> alter user dbsnmp account unlock; User altered. 然后修改密码 SQL> alter user dbsnmp identified by dbsnmp; User altered. 现在就可以用用户名:dbsnmp 密码:dbsnmp登录了。 Oracle 10g默认安装带来的用户名/密码 Username Password Description See Also CTXSYS CTXSYS The Oracle Text account Oracle Text Reference DBSNMP DBSNMP The account used by the Management Agent component of Oracle Enterprise Manager to monitor and manage the database Oracle Enterprise Manager Grid Control Installation and Basic Configuration LBACSYS LBACSYS The Oracle Label Security Oracle Label Security

oracle account is locked-的解决办法

ORA-28000: the account is locked-的解决办法 ORA-28000: the account is locked 第一步:使用PL/SQL,登录名为system,数据库名称不变,选择类型的时候把Normal修改为Sysdba; 第二步:选择myjob,查看users; 第三步:选择system,右击点击“编辑”; 第四步:修改密码,把“帐户被锁住”的勾去掉; 第五步:点击“应用”再点击“关闭”; 第六步:重新登录就可以通过验证了; 第二种 ALTER USER username ACCOUNT UNLOCK; 第三种 在plsql developer中要是以scott/tiger登录时提示ora-28000 the account is locked。 解决办法: 新装完Oracle10g后,用scott/tiger测试,会出现以下错误提示: oracle10g the account is locked oracle10g the password has expired 原因:默认Oracle10g的scott不能登陆。 解决: (1)conn sys/sys as sysdba; //以DBA的身份登录 (2)alter user scott account unlock;// 然后解锁 (3)conn scott/tiger //弹出一个修改密码的对话框,修改一下密码就可以了 在运行里面输入cmd在DOS模式下输入sqlplus,以system用户名登录,密码是刚装oracle时自己填写的密码orcl,登录进去以后。 SQL> conn sys/sys as sysdba; (分号是必须的但是我是以system登录的所在这不应该写conn sys/sys as sysdba应该写conn system/orcl as sysdba;) Connected. SQL> alter user scott account unlock; User altered. SQL> commit; Commit complete.

数据库账号被锁定解决

在Oracle数据库操纵中,登录Oracle账号时提示失败,并且Oracle账号频繁被锁定。造成此故障的原因是什么呢?北京海淀甲骨文学习中心就介绍了这一过程,经由过程慢慢排查我们就能找到该故障的原因了。 下面记录下查找这个题目的步调。 1. 找到账号被锁按时候 哄骗sqlplus或者sqldeveloper,查询账号被锁定的时候,相干语句如下: --批改当前会话的日期显示格局 alter session set nls_date_format = ""yyyy-MM-dd hh24:mi:ss""; --查询被锁定账号的锁按时候 username,lock_date dba_users where username like ""TRSEKPV65_DEMO""; 比如这里的查询到的锁按时候为:20:03:03 2. 找到oracle的安装目次 项目组常识库的oracle安装路径为:C:\devsoftware\oracle11g 3. 找到监听日记 找到 C:\devsoftware\oracle11g\diag\tnslsnr\DEV2-216\listener\trace\listener.log文件,该文件会记录oracle的一些跟踪信息 4. 查看监听日记 找到该文件后,发明很大,无法用editplus打开。把该文件上传到linux机械或者在windows机械高低载一个tail.exe法度,履行tail -20 listener.log号令,查看该文件的最后20行内容。 5. 定位题目 按照上方查询到的时候,在日记中找到对应的时候地位,可以定位到当前时候Oracle所履行的操纵。 01-8月 -2011 20:03:35 * (CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=portalteam)(CID=(PROGRAM=D:\TRS\TRSGateway4.6\gwserver_x64\TrsAgent.exe)(HOST=DEV2-216)(USER=Administrator))) * (ADDRESS=(PROTOCOL=tcp)(HOST=fe80::e816:9e03:60ac:fdaa%11)(PORT=13678)) * establish * portalteam * 0 6. 总结 从上边可以看到,造成Oracle的账号被锁定的原因是由” TrsAgent.exe”过程造成的。细心一想,本来批改了暗码,没有批改GateWay的登录信息,所以造成了该账号登录Oracle经常失败,因为我们设备了Oracle的最大容许登录错误次数为10,所以跨越10次错误后账号将被锁定。

Oracle用户角色权限等操作

oracle 赋予权限 转发评论 02月21日13:00 最基础的sqlplus username/password@[sid] 连接数据库 sqlplus username/password as sysdba 以管理员连接数据库 管理员连接后创建用户sqlplus system/manager@demo as sysdba create user abc identified by abc ; 创建用户abc密码为abc grant all privileges to abc; 给abc用户赋予所有的权限 给自己留个备份以备不时之需 oracle grant 授权语句--select * from dba_users; 查询数据库中的所有用户 --alter user USERNAME account lock; 锁住用户 --alter user USERNAME account unlock; 给用户解锁 --create user USERNAME identified by USERPASS; 建立用户 一般创建用户后需要授予链接数据库权限 grant connect,resource to USERNAME; --grant create tablespace to USERNAME; 授权创建表空间 --grant SELECT on TABLENAME to USERNAME; 授权查询 授权其他动作格式相同 如果要把所有表的查询权限分配给用户可以用这样的 grant select any table to USERNAME; --grant execute on procedure1 to xujin 授权存储过程

ORACLE数据库查锁和解锁

查看锁表进程SQL语句1: select sess.sid sess.serial# lo.oracle_username lo.os_user_name ao.obxxxxject_name lo.locked_mode from v$locked_obxxxxject lo dba_obxxxxjects ao v$session sess where ao.obxxxxject_id = lo.obxxxxject_id and lo.session_id = sess.sid; 查看锁表进程SQL语句2: select * from v$session t1 v$locked_obxxxxject t2 where t1.sid = t2.SESSION_ID; 杀掉锁表进程: 如有記錄則表示有lock,記錄下SID和serial# ,將記錄的ID替換下面的7381429,即可解除LOCK alter system kill session '7381429';

--查询语句 select b.sid sid c.serial# serial https://www.wendangku.net/doc/d37769201.html,ername username c.osuser osuser c.terminal terminal decode(b.id20'对象锁''事务-'||to_char(b.id1)) trans_id b.type type decode(b.lmode0'等待'1'空'2'行子共享模式(SS)'3'行共享互斥模式(SX)' 4'共享模式(S)'5'行子共享互斥模式(SRX)'6'互斥模式(X)'b.lmode) lmode decode(b.request' '1'空'2'行子共享模式(SS)'3'行共享互斥模式(SX)' 4'共享模式(S)'5'行子共享互斥模式(SRX)'6'互斥模式(X)' b.request) request b.ctime ctime decode(b.block0 '不阻塞'1 '阻塞'2 '全局锁'to_char(block)) block from v$lock bv$session c where b.sid=c.sid and https://www.wendangku.net/doc/d37769201.html,ername is not null

相关文档
相关文档 最新文档