如何建立sql数据库库如何解锁呢

在创建数据库时,其中SYS登录Oracle数据库在SQL*Plus工具通过如下SQL解锁。1、通过数据字典dba_users,查看Oracle账户的锁定状态,如下:(v其中,OPEN表示账户为解锁状态;EXPIRED表示账户为过期状态(需要设置口令才能解除此状态);LOCKED表示账户为锁定状态。)2、先通过查询有哪些账号被锁
select username,account_status from dba_3、下面使用ALTER USER语句为scott账户解锁:
ALTER USER scott ACCOUNT UNLOCK;
再使用ALTER USER语句为scott账户修改密码口令,如下:
ALTER USER scott IDENTIFIED BY
通过数据字典dba_users查看现在scott账户的状态,如下:通过查询结果可以看出,scott账户已经被成功解锁。在使用数据字典dba_users时,需要注意其字段的值是区分大小的相关账号其它策略一--1.--系统参数配置  connect sys/password@db_link as sysdbaselect * from dba_profiles where resource_name like 'FAILED_LOGIN_ATTEMPTS%';--1 DEFAULT FAILED_LOGIN_ATTEMPTS PASSWORD 10--连续错误连接10次用户被锁定--2.--查看被锁的用户select LOCK_DATE,username from dba_users where username='USERNAME'; LOCK_DATE为空说明没有锁定,非空为锁定。-----SELECT S.USERNAME,
DECODE(L.TYPE, 'TM', 'TABLE LOCK', 'TX', 'ROW LOCK', NULL) LOCK_LEVEL,
O.OBJECT_NAME,
O.OBJECT_TYPE,
S.SERIAL#,
S.TERMINAL,
S.MACHINE,
S.PROGRAM,
FROM V$SESSION S, V$LOCK L, DBA_OBJECTS OWHERE S.SID = L.SID
AND O.OBJECT_ID = L.ID1
AND S.USERNAME IS NOT NULL;--3. --解锁方法ALTER USER USER_NAME ACCOUNT UNLOCK;--值的注意,在升级过程中,被锁的用户,有可能不值一个--重新升级-----设置系统的默认登录次数alter profile DEFAULT limit FAILED_LOGIN_ATTEMPTS 10; alter profile DEFAULT limit FAILED_LOGIN_ATTEMPTS UNLIMITED; ------------员为这个用户单独设置了登录次数则要查找这个用户对应的profile,然后修改.可以查看用户的创建语名找到对应的设置。Oracle系统中的profile可以用来对用户所能使用的数据库资源进行限制,使用
Profile命令创建一个Profile,用它来实现对数据库资源的限制使用,如果把该profile分配给用户,则该用户所能使用的数据库资源都在该
profile的限制之内。 二、条件:创建profile必须要有CREATE PROFILE的系统权限。为用户指定资源限制,必须:1.动态地使用alter system或使用初始化参数resource_limit使资源限制生效。该改变对密码资源无效,密码资源总是可用。SQL& show parameter resource_limitNAME
VALUE———————————— ———– ——————————resource_limit
FALSE SQL& alter system set resource_limit=系统已更改。SQL& show parameter resource_NAME
VALUE———————————— ———– ——————————resource_limit
TRUESQL&2.使用create profile创建一个定义对数据库资源进行限制的profile。3.使用create user 或alter user命令把profile分配给用户。 三、语法:
CREATE PROFILE profile LIMIT { resource_parameters | password_parameters } [ resource_parameters | password_parameters ]… ;&resource_parameters&{{ SESSIONS_PER_USER |
CPU_PER_SESSION | CPU_PER_CALL | CONNECT_TIME | IDLE_TIME |
LOGICAL_READS_PER_SESSION | LOGICAL_READS_PER_CALL | COMPOSITE_LIMIT } {
integer | UNLIMITED | DEFAULT }| PRIVATE_SGA { integer [ K | M ] | UNLIMITED | DEFAULT }}& password_parameters &{{ FAILED_LOGIN_ATTEMPTS |
PASSWORD_LIFE_TIME | PASSWORD_REUSE_TIME | PASSWORD_REUSE_MAX |
PASSWORD_LOCK_TIME | PASSWORD_GRACE_TIME } { expr | UNLIMITED | DEFAULT }| PASSWORD_VERIFY_FUNCTION { function | NULL | DEFAULT }}四、语法解释:
profile:配置文件的名称。Oracle数据库以以下方式强迫资源限制:
1.如果用户超过了connect_time或idle_time的会话资源限制,数据库就回滚当前事务,并结束会话。用户再次执行命令,数据库则返回一个错误,
2.如果用户试图执行超过其他的会话资源限制的操作,数据库放弃操作,回滚当前事务并立即返回错误。用户之后可以提交或回滚当前事务,必须结束会话。
提示:可以将一条分成多个段,如1小时(1/24天)来限制时间,可以为用户指定资源限制,但是数据库只有在参数生效后才会执行限制。
Unlimited:分配该profile的用户对资源使用无限制,当使用密码参数时,unlimited意味着没有对参数加限制。
Default:指定为default意味着忽略对profile中的一些资源限制,Default profile初始定义对资源不限制,可以通过alter profile命令来改变。
Resource_parameter部分:
Session_per_user:指定限制用户的并发会话的数目。
Cpu_per_session:指定会话的CPU时间限制,单位为百分之一秒。
Cpu_per_call:指定一次调用(解析、执行和提取)的CPU时间限制,单位为百分之一秒。
Connect_time:指定会话的总的连接时间,以分钟为单位。
Idle_time:指定会话允许连续不活动的总的时间,以分钟为单位,超过该时间,会话将断开。但是长时间运行查询和其他操作的不受此限制。
Logical_reads_per_session:指定一个会话允许读的数据块的数目,包括从内存和磁盘读的所有数据块。
Logical_read_per_call:指定一次执行SQL(解析、执行和提取)调用所允许读的数据块的最大数目。
Private_sga:指定一个会话可以在共享池(SGA)中所允许分配的最大空间,以字节为单位。(该限制只在使用共享服务器结构时才有效,会话在SGA中的私有空间包括私有的SQL和PL/SQL,但不包括共享的SQL和PL/SQL)。
Composite_limit:指定一个会话的总的资源消耗,以service
units单位表示。Oracle数据库以有利的方式计算cpu_per_session,connect_time,
logical_reads_per_session和private-sga总的service units
Password_parameter部分:
Failed_login_attempts:指定在帐户被锁定之前所允许尝试登陆的的最大次数。
Password_life_time:指定同一密码所允许使用的天数。如果同时指定了
password_grace_time参数,如果在grace
period内没有改变密码,则密码会失效,连接数据库被拒绝。如果没有设置password_grace_time参数,默认值unlimited将引
发一个数据库警告,但是允许用户继续连接。
Password_reuse_time和password_reuse_max:这两个参数必须互相关联设置,password_reuse_time
指定了密码不能重用前的天数,而password_reuse_max则指定了当前密码被重用之前密码改变的次数。两个参数都必须被设置为整数。
1.如果为这两个参数指定了整数,则用户不能重用密码直到密码被改变了password_reuse_max指定的次数以后在password_reuse_time指定的时间内。
如:password_reuse_time=30,password_reuse_max=10,用户可以在30天以后重用该密码,要求密码必须被改变超过10次。
2.如果指定了其中的一个为整数,而另一个为unlimited,则用户永远不能重用一个密码。
3.如果指定了其中的一个为default,Oracle数据库使用定义在profile中的默认值,默认情况下,所有的参数在profile中都被设置为unlimited,如果没有改变profile默认值,数据库对该值总是默认为unlimited。
4.如果两个参数都设置为unlimited,则数据库忽略他们。
Password_lock_time:指定登陆尝试失败次数到达后帐户的缩定时间,以天为单位。
Password_grace_time:指定宽限天数,数据库发出警告到登陆失效前的天数。如果数据库密码在这中间没有被修改,则过期会失效。
Password_verify_function:该字段允许将复杂的PL/SQL密码验证脚本做 为参 数传递到create
profile语句。Oracle数据库提供了一个默认的脚本,但是自己可以创建自己的验证规则或使用第三方软件验证。
对Function名称,指定的是密码验证规则的名称,指定为Null则意味着不使用密码验证功能。如果为密码参数指定表达式,则该表达式可以是任意格
式,除了数据库标量子查询。
五、举例:
1.创建一个profile:
create profile new_profile limit password_reuse_max 10 password_reuse_time 30;
2.设置profile资源限制:
create profile app_user limit sessions_per_user unlimited
cpu_per_session unlimited cpu_per_call 3000 connect_time 45
logical_reads_per_session default logical_reads_per_call 1000
private_sga 15k composite_limit 5000000;
总的resource cost不超过五百万service units。计算总的resource cost的公式由alter resource cost语句来指定。
3.设置密码限制profile:
create profile app_users2 limit failed_login_attempts 5
password_life_time 60 password_reuse_time 60 password_reuse_max 5
password_verify_function verify_function password_lock_time 1/24
password_grace_time 10;
4.将配置文件分配给用户:
SQL& alter user dinya profile app_用户已更改。
SQL& alter user d用户已更改。
声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至: 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。sql server怎样给一个数据库加锁和解锁
sql server怎样给一个数据库加锁和解锁?具体应该用什么命令或过程进行处理?
sql server 没有直接加锁的要么是根据你的操作自动加锁, 要么是在具体的操作中, 使用 锁定提示 手工指定锁的类型和范围
怎样使用锁定提示,手工指定锁的类型和范围数据库级别的共享锁(加锁和解锁)
联机帮助一下:锁定提示More: blog.csdn.net/happyflystone
已标记为答案
先读读lock and concurrency这章吧,在inside sql server :storage engine里有介绍有dba的职位吗(北京的),请联系我 stswordman#hotmail.com
已标记为答案
You don't need do anything, sql handles it properly by design. Read books online for details.
怎样使用命令给一个数据库加上共享锁
Use lock hint in certain sql statement.
能否举个例子?
select * from table with (holdlock)
sql server 没有直接加锁的要么是根据你的操作自动加锁, 要么是在具体的操作中, 使用 锁定提示 手工指定锁的类型和范围
锁定数据库还是锁定表?
Sql puts lock on database when it's used.
select * from table with (holdlock)
对于一个数据库如何对库进行加锁和解锁?没有这样的命令吗?可是数据库的资料中锁的粒度中有提到过数据库级别的锁。
sql server 没有直接加锁的要么是根据你的操作自动加锁, 要么是在具体的操作中, 使用 锁定提示 手工指定锁的类型和范围
怎样使用锁定提示,手工指定锁的类型和范围数据库级别的共享锁(加锁和解锁)
select * from table with (holdlock)
对于一个数据库如何对库进行加锁和解锁?没有这样的命令吗?可是数据库的资料中锁的粒度中有提到过数据库级别的锁。
No such command.
sql server 没有直接加锁的要么是根据你的操作自动加锁, 要么是在具体的操作中, 使用 锁定提示 手工指定锁的类型和范围
怎样使用锁定提示,手工指定锁的类型和范围数据库级别的共享锁(加锁和解锁)
联机帮助一下:锁定提示More: blog.csdn.net/happyflystone
已标记为答案
先读读lock and concurrency这章吧,在inside sql server :storage engine里有介绍有dba的职位吗(北京的),请联系我 stswordman#hotmail.com
已标记为答案
Microsoft 正在进行一项网上调查,以了解您对 Technet 网站的意见。如果您选择参加,我们将会在您离开 Technet 网站时向您显示该网上调查。是否要参加?
<input type="hidden" id="hdnTrackerText" value="请不要关闭此窗口。谢谢!完成访问时,调查将显示在此处,所以请不要关闭此窗口。" />orcal数据库表被锁了怎么解锁??_百度知道
orcal数据库表被锁了怎么解锁??
我有更好的答案
在操作数据库的时候,有时候会由于操作不当引起数据库表被锁定,这么我们经常不知所措,不知怎么给这些表解锁,在pl/sql Developer工具的的菜单“tools”里面的“sessions”可以查询现在存在的会话,但是我们很难找到那个会话被锁定了,想找到所以被锁的会话就更难了,下面这叫查询语句可以查询出所以被锁的会话。如下:SELECT
sn.username, m.SID,sn.SERIAL#, m.TYPE,DECODE (m.lmode,0, &#39;None&#39;,1, &#39;Null&#39;,2, &#39;Row Share&#39;,3, &#39;Row Excl.&#39;,4, &#39;Share&#39;,5, &#39;S/Row Excl.&#39;,6, &#39;Exclusive&#39;,lmode, LTRIM (TO_CHAR (lmode, &#39;990&#39;))) lmode,DECODE (m.request,0, &#39;None&#39;,1, &#39;Null&#39;,2, &#39;Row Share&#39;,3, &#39;Row Excl.&#39;,4, &#39;Share&#39;,5, &#39;S/Row Excl.&#39;,6, &#39;Exclusive&#39;,request, LTRIM (TO_CHAR (m.request, &#39;990&#39;))) request,m.id1, m.id2FROM v$session sn, v$lock mWHERE (sn.SID = m.SID AND m.request != 0)
--存在锁请求,即被阻塞OR (
sn.SID = m.SID
--不存在锁请求,但是锁定的对象被其他会话请求锁定AND m.request = 0AND lmode != 4AND (id1, id2) IN (SELECT s.id1, s.id2FROM v$lock sWHERE request != 0 AND s.id1 = m.id1AND s.id2 = m.id2))ORDER BY id1, id2, m.通过以上查询知道了sid和 SERIAL#就可以开杀了alter system kill session &#39;sid,SERIAL#&#39;;
采纳率:100%
锁有以下几种模式: 0:none 1:null 空 2:Row-S 行共享(RS):共享表锁 3:Row-X 行专用(RX):用于行的修改 4:Share 共享锁(S):阻止其他DML操作 5:S/Row-X 共享行专用(SRX):阻止其他事务操作 6:exclusive 专用(X):独立访问使用 数字越大锁级别越高, 影响的操作越多。一般的查询语句如select ... from ... ;是小于2的锁, 有时会在v$locked_object出现。select ... from ... 是2的锁。当对话使用for update子串打开一个游标时, 所有返回集中的数据行都将处于行级(Row-X)独占式锁定, 其他对象只能查询这些数据行,不能进行update、delete或select...for update操作。insert / update / delete ... ; 是3的锁。没有commit之前插入同样的一条记录会没有反应, 因为后一个3的锁会一直等待上一个3的锁, 我们必须释放掉上一个才能继续工作。创建索引的时候也会产生3,4级别的锁。locked_mode为2,3,4不影响DML(insert,delete,update,select)操作, 但DDL(alter,drop等)操作会提示ora-00054错误。有主外键约束时 update / delete ... ; 可能会产生4,5的锁。DDL语句时是6的锁。以DBA角色, 查看当前数据库里锁的情况可以用如下SQL语句:select object_id,session_id,locked_mode from v$locked_select t2.username,t2.sid,t2.serial#,t2.logon_time from v$locked_object t1,v$session t2 where t1.session_id=t2.sid order by t2.logon_如果有长期出现的一列,可能是没有释放的锁。我们可以用下面SQL语句杀掉长期没有释放非正常的锁:alter system kill session &#39;sid,serial#&#39;;如果出现了锁的问题, 某个DML操作可能等待很久没有反应。当你采用的是直接连接数据库的方式, 也不要用OS系统命令 $kill process_num 或者 $kill -9 process_num来终止用户连接, 因为一个用户进程可能产生一个以上的锁, 杀OS进程并不能彻底清除锁的问题。记得在数据库级别用alter system kill session &#39;sid,serial#&#39;;杀掉不正常的锁。
为您推荐:
其他类似问题
您可能关注的内容
orcal的相关知识
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。ORACLE 如何查询被锁定表及如何解锁释放session
转载 & & 作者:
后台数据库操作某一个表时发现一直出于假死状态,可能是该表被某一用户锁定,接下来为你详细介绍下查询被锁定表及如何解锁,感兴趣的你可以参考下,希望可以帮助到你
ORACLE EBS操作某一个FORM界面,或者后台数据库操作某一个表时发现一直出于"假死"状态,可能是该表被某一用户锁定,导致其他用户无法继续操作
代码如下: --锁表查询SQLSELECT object_name, machine, s.sid, s.serial# FROM gv$locked_object l, dba_objects o, gv$session s WHERE l.object_id = o.object_id AND l.session_id = s.
找到被锁定的表,解锁
代码如下: --释放SESSION SQL: --alter system kill session 'sid, serial#'; ALTER system kill session '23, 1647';
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具db数据库如何破解密码
全部答案(共2个回答)
文件,通过查找“DBA”(二进制使用“44 42 41”),定位到底一个位置,注意观察这个区域,前面一般有“do”、“PUBLIC”,后面有“SYS”。这个区域就是ASA保存用户口令的数据段。把“SYS”之前四个空字符“00 00 00 00”之前到“44 42 21”之间的所有二进制数据,改为如下二进制数(代表SQL):
使用UltaEdit等二进制编辑工具打开数据库文件,通过查找“DBA”(二进制使用“44 42 41”),定位到底一个位置,注意观察这个区域,前面一般有“do”、“PUBLIC”,后面有“SYS”。这个区域就是ASA保存用户口令的数据段。把“SYS”之前四个空字符“00 00 00 00”之前到“44 42 21”之间的所有二进制数据,改为如下二进制数(代表SQL):
24 36 3BDF 7D B5 77 B2
82 45 67 6D C2 DB D6 E7 F2 64 28 C3 55 22 97 F5
6C F5 8C 0F 8C C5 71 BA 15 C9 5E BC 43 01 59 01
59 01 59 01 4E 01 4E 01 4E 17 00 00
改好后,保存数据库,DBA密码就是“SQL”了。当然还可以先建立一个测试数据库TEST,输好自已 DBA密码后,按以上方法查找到密码区,把密码值写入到要更改的数据库文相关区,即可随意更改成自已想要的密码了.以上方法 ASA5,ASA7通过
亲,如果我的回答对您有帮助,请赐个好评吧。谢谢!
使用UltaEdit等二进制编辑工具打开数据库文件,通过查找“DBA”(二进制使用“44 42 41”),定位到底一个位置,注意观察这个区域,前面一般有“do”、“PUBLIC”,后面有“SYS”。这个区域就是ASA保存用户口令的数据段。把“SYS”之前四个空字符“00 00 00 00”之前到“44 42 21”之间的所有二进制数据,改为如下二进制数(代表SQL): 24 36 3BDF 7D B5 77 B2 82 45 67 6D C2 DB D6 E7 F2 64 28 C3 55 22 97 F5 6C F5 8C 0F 8C C5 71 BA 15 C9 5E BC 43 01 59 01 59 01 59 01 4E 01 4E 01 4E 17 00 00 改好后,保存数据库,DBA密码就是“SQL”了。当然还可以先建立一个测试数据库TEST,输好自已 DBA密码后,按以上方法查找到密码区,把密码值写入到要更改的数据库文相关区,即可随意更改成自已想要的密码了.以上方法 ASA5,ASA7通过。有帮助请好评谢谢!
数据库数据存放文件每种软件都有自己存放格式数据排列方式缀名均DB delphi 、VB、VC等等编程类软件都打开显示数据方式定样 手上没有些软件试试office...
如果穷举爆破的话
应该熟悉VB简单的ActivateForm,SendKeys等交互操作函数
复杂的自动爆破机需要大量的使用API
说具体点,如果要做一个自动尝...
什么叫加密?
拜托你先去研究一下加密算法再来提问好不,算法那么多,想要万能解密是不可能的
上各大软件园搜索一下,应该会找到的。
去看看vb传统文件操作一章就会了,还是自己去做!不能浪费分数。再说一楼的回答,唉...
答: 将背景颜色的属性值存到数据库,再调用。
答: 虽然分区技术可以实现很多效果,但其主要目的是为了在特定的SQL操作中减少数据读写的总量以缩减响应时间
答: 伪造是以完整性作为攻击目标,非授权用户将伪造的数据插入到正常传输的数据中
大家还关注
Copyright &
Corporation, All Rights Reserved
确定举报此问题
举报原因(必选):
广告或垃圾信息
激进时政或意识形态话题
不雅词句或人身攻击
侵犯他人隐私
其它违法和不良信息
报告,这不是个问题
报告原因(必选):
这不是个问题
这个问题分类似乎错了
这个不是我熟悉的地区
相关问答:123456789101112131415

我要回帖

更多关于 如何用sql建立数据库 的文章

 

随机推荐