Oracle 学习笔记 - SYSDBA登陆权限问题

合集下载

oracle的sysdba权限登录问题

oracle的sysdba权限登录问题

最近的时间,在搞数据库的安全加固问题,关于数据库中关于sysdba权限的登录,通过最近的一些实践和测试,在这里记录一下:数据库用sysdba登录的验证有两种方式,一种是通过os认证,一种是通过密码文件验证;登录方式有两种,一种是在数据库主机直接登录(用os认证的方式),一种是通过网络远程登录;需要设置的参数有两个,一个是SQLNET.AUTHENTICATION_SERVICES,一个是REMOTE_LOGIN_PASSWORDFILE。

os认证:如果启用了os认证,以sysdba登录,那么我们只要用oracle软件的安装用户就能登录:sqlplus “/ as sysdba”。

如果我们要禁用os认证,只利用密码文件登录,我们首先要有一个密码文件:D:\oracle\ora92\database>orapwd file=PWDoralocal.ora password=mypassword entries=10;D:\oracle\ora92\database>然后我们要把$ORACLE_HOME/network/admin/sqlnet.ora中设置:SQLNET.AUTHENTICATION_SERVICES= none注意一下,密码文件只在数据库启动的时候加载进去,一旦加载进去,密码文件就脱离了oracle管理,所以我们用orapwd新建密码文件后,里面指定的密码要在数据重启后才能生效:D:\oracle\ora92\database>sqlplus"sys/mypassword as sysdba"SQL*Plus: Release9.2.0.1.0 - Production on Fri May1621:59:422008Copyright(c)1982, 2002, Oracle Corporation. All rights reserved.ERROR:ORA-01031: insufficient privilegesEnter user-name:ERROR:ORA-01017: invalid username/password; logon deniedEnter user-name:ERROR:ORA-01017: invalid username/password; logon deniedSP2-0157: unable to CONNECT to ORACLE after3attempts, exiting SQL*Plus### 这里我们通过改SQLNET.AUTHENTICATION_SERVICES= (NTS)用os认证登录数据库:sys@ORALOCAL(192.168.50.29)> shutdown immediate;Database closed.Database dismounted.ORACLE instance shut down.sys@ORALOCAL(192.168.50.29)>sys@ORALOCAL(192.168.50.29)>sys@ORALOCAL(192.168.50.29)>sys@ORALOCAL(192.168.50.29)> startupORACLE instance started.Total System Global Area135338868bytesFixed Size453492bytesVariable Size109051904bytesDatabase Buffers25165824bytesRedo Buffers667648bytesDatabase mounted.Database opened.sys@ORALOCAL(192.168.50.29)>sys@ORALOCAL(192.168.50.29)>sys@ORALOCAL(192.168.50.29)>sys@ORALOCAL(192.168.50.29)> exitDisconnected from Oracle9i Enterprise Edition Release9.2.0.1.0 - Production With the Partitioning, OLAP and Oracle Data Mining optionsJServer Release9.2.0.1.0 - ProductionD:\oracle\ora92\database>D:\oracle\ora92\database>D:\oracle\ora92\database>### 我们把SQLNET.AUTHENTICATION_SERVICES= (NTS)改回去。

Oracle权限不足问题集锦

Oracle权限不足问题集锦

Oracle Oracle权限不足问题集锦跟Oracle数据库打交道的DBA都会遇到过“Insufficient privileges”这样的错误,出现权限不足问题的情况各有不同在本次的Oracle系列电子书中,我们就总结了网友在使用Oracle数据时遇到的Insufficientprivileges错误。

ORA-01031:Insufficient privileges错误解决方法以sysdba登录时的Insufficient privileges错误Windows集群下的ORA-12638和ORA-01031错误在不同的模式下执行SQL语句TechTarget 中国《Oracle电子书》 1TechTarget 中国《Oracle 电子书》2TechTarget 中国《Oracle 电子书》3解决创建存储过程时的Insufficient privileges 错误问:我需要使用Toad 在我的schema 中创建一个存储过程。

但是出现了“Insufficient privileges.”的错误。

当我以System 连接并将schema 的名称添加到表的前缀中(schema.tablename),系统提示表不存在。

请问问题出在哪里?我该如何解决?答:为了在你的schema 中创建一个存储过程,你需要有CREATE PROCEDURE 系统权限。

你可以通过查询用户的DBA_SYS_PRIVS 来进行查看。

此外,如果存储过程要参考对象,该用户还需要拥有相应的对象权限。

举例来说,如果存储过程插入一行数据到SCOTT .EMP 表中,针对该表,用户必须被授予INSERT 权限。

授权不能通过角色,你必须直接将对象权限授予用户。

(作者:Brian Peasland 译者:孙瑞 来源:TT 中国)TechTarget 中国《Oracle 电子书》4ORA-01039:Insufficientprivileges 错误的解决方法问:我经常得到如下所示的错误:ORA-01039 Insufficient privilege on underlyingobjects of the view我写的查询如下:select'00.00.0000 '||banner,user,99/100 fromv$version where banner like 'Oracle%'请问这个错误的原因是什么?该如何解决?谢谢!答:如果得到ORA-1039错误,那就是因为你的账户没有针对视图或者视图下表的SELECT 权限。

oracle授予用户实例

oracle授予用户实例

oracle授予用户实例Oracle是一款广泛应用于企业级数据库管理系统的软件,而用户实例则是Oracle数据库中的一个重要概念。

本文将探讨Oracle如何授予用户实例的过程和相关注意事项。

在Oracle中,用户实例是指一个用户与数据库建立的一个会话。

用户实例具有独立的系统资源和权限,可以进行数据库操作和数据查询。

为了保证数据的安全性和权限的控制,Oracle提供了授予用户实例的功能。

我们需要了解如何创建用户实例。

在Oracle中,创建用户实例需要使用CREATE USER语句。

这条语句可以指定用户的名称、密码和权限等信息。

创建用户实例的过程可以通过以下步骤完成:第一步,登录到Oracle数据库。

可以使用sqlplus或者SQL Developer等工具进行登录。

第二步,使用sysdba权限登录到数据库。

只有具有sysdba权限的用户才能够创建用户实例。

第三步,执行CREATE USER语句,指定用户的名称、密码和权限等信息。

例如,可以执行以下语句创建一个名为user1的用户实例:CREATE USER user1 IDENTIFIED BY password;其中,user1是用户的名称,password是用户的密码。

可以根据实际需求,指定用户实例的其他属性,如临时表空间、默认表空间等。

第四步,授予用户实例相应的权限。

在Oracle中,可以使用GRANT 语句授予用户实例具有的权限。

例如,可以使用以下语句将SELECT 权限授予user1用户:GRANT SELECT ON table_name TO user1;其中,table_name是需要授予权限的表的名称。

可以根据实际需求,授予用户实例其他的权限,如INSERT、UPDATE、DELETE等。

在授予用户实例权限的过程中,需要注意以下几点:授予的权限应该与用户实例的需求相匹配。

不要授予过多的权限,以免导致意外操作或者安全风险。

需要注意权限的控制粒度。

oracle数据库sys密码规则

oracle数据库sys密码规则

在深入讨论oracle数据库sys密码规则之前,让我们首先简要了解一下oracle数据库的概念和特点。

Oracle数据库是一种关系型数据库管理系统,它是由Oracle公司开发的,被广泛应用于企业级应用程序和数据管理。

作为一种重要的数据库系统,它有着丰富的功能和强大的性能,同时也有着严格的安全性要求,其中包括了sys密码规则。

对于许多用户和管理员来说,数据库的安全性是至关重要的,因为数据库中往往包含着重要的企业数据和敏感信息,因此必须要有一套严格的密码规则来保护这些数据。

在oracle数据库中,sys用户是具有最高权限的用户,它可以进行各种管理和控制操作,因此sys用户的密码规则显得尤为重要。

下面,我们就来一起深入探讨一下oracle数据库sys密码规则。

1. 密码长度:在oracle数据库中,sys用户的密码长度通常要求至少包含8个字符,这是为了确保密码的复杂度和安全性。

为了进一步提高安全性,密码的长度还可以设置得更长一些,以增加密码的复杂度和难度。

2. 复杂度要求:除了密码的长度外,oracle数据库还要求密码必须包含大小写字母、数字和特殊字符等多种元素,以增加密码的复杂度和难度,从而提高密码的安全性。

3. 密码历史:为了防止用户频繁地更改密码来规避安全控制,oracle 数据库通常会要求密码历史,即要求用户不能在一段时间内重复使用之前的若干个密码。

4. 密码有效期:为了增加密码的安全性,oracle数据库通常会要求密码定期更改,即要求用户在一定的时间内必须更改密码,以确保密码的安全性。

5. 锁定策略:当用户多次输入错误密码时,oracle数据库还会对用户进行锁定,以防止恶意破解密码的行为,从而进一步提高密码的安全性。

总结回顾:sys密码规则在oracle数据库中具有非常重要的意义,它是保护数据库安全的重要措施之一。

通过设置复杂的sys密码规则,可以有效地提高数据库的安全性,避免未经授权的访问和恶意破解。

韩顺平oracle学习笔记

韩顺平oracle学习笔记

韩顺平oracle学习笔记第0讲:如何学习oracle一、如何学习oracleOracle目前最流行的数据库之一,功能强大,性能卓越。

学习oracle需要具备一定基础:1.学习过一门编程语言(如:java ,c)2.最好学习过一门别的数据库(sql server,mysql , access)教程推荐:oracle使用教程,深入浅出oracle记住:欲速则不达,做任何事情要遵循他的规律,循序渐进,信心很重要成为一个oracle高手过程:理解小知识点->做小练习->把小的只是点连成线->做oracle项目->形成只是面->深刻理解Oracle基础部分:oracle基础使用; oracle用户管理; oracle表管理Oracle高级部分:oracle表的查询; oracle的函数; oracle数据库管理;oracle 的权角色; pl/sql 编程;索引,约束和事物。

期望目标:1 学会安装、启动、卸载oracle2 使用sql *plus工具3 掌握oracle用户管理4 学会在oracle中编写简单的select语句第1讲:基础语法内容介绍:1.为什么学习oracle2.介绍oracle及其公司的背景3.学会安装、启动、卸载oracle4.oracle开发工具5.Sql*plus的常用命令6.oracle用户管理一、主流数据库包括:●微软:sql server 和 access●瑞典:mysql AB公司●IBM公司:DB2●美国sybase公司:sybase●IBM公司:infromix●美国oracle公司:oracle(目前最流行的之一)二、oracle安装,启动及卸载1.系统要求:操作系统最好为windows2000内存最好在256M以上硬盘空间需要2G以上2.oracle安装会自动的生成sys和system两个用户说明:○1Sys用户是超级用户,具有最高权限,具有sysdba角色,create database 的权限,默认密码是manager○2System 用户是管理操作员,权限也很大,具有sysoper角色,没有create database权限,默认密码是 change_on_install○3一般讲,对数据库维护,使用system用户登录就可以了3.启动oracle右键单击我的电脑->服务和应用程序:服务->启动OracleServiceMYORA1(MYORA1是安装oracle时起的名字各有不同)和OracleOracleHome90TNSLlistener4.卸载oracle1、先关掉oralce,net stop OracleServiceORCL(ORCL是我的实例名字,换成你的),或者去我的电脑服务中关闭2、开始->程序->Oracle - oracle的版本号,我的是10ghome->Oracle Installation Products->Universal Installer 卸载oracle3、进注册表,regedit,删除选择HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE下所有的key。

oracle赋dba权限

oracle赋dba权限

oracle赋dba权限如何给Oracle数据库用户赋予DBA权限Oracle数据库的DBA(Database Administrator)权限是指最高级别的数据库管理权限,具有该权限的用户可以对数据库进行全面的管理和控制。

在某些情况下,给予用户DBA权限是必要的,例如需要进行数据库维护、性能优化或者进行一些故障排除等任务。

下面将详细介绍如何给Oracle数据库用户赋予DBA权限的步骤。

1. 连接到Oracle数据库首先,使用管理员账号连接到Oracle数据库。

这个管理员账号通常是sys 或system用户,拥有sysdba权限。

连接到Oracle数据库的命令可以使用SQL*Plus工具或者命令行界面。

例如,在Windows系统上可以使用以下命令连接到数据库:sqlplus / as sysdba2. 创建新的数据库用户接下来,需要创建一个新的数据库用户来赋予DBA权限。

使用以下SQL 语句创建一个新用户,例如,创建一个名为new_user的用户:SQL> CREATE USER new_user IDENTIFIED BY password;在这里,new_user是新用户的用户名,password是新用户的密码。

3. 授权DBA权限接下来,使用以下SQL命令将DBA角色授予新用户:SQL> GRANT DBA TO new_user;这个命令将DBA角色授予新创建的用户,使其具有DBA权限。

4. 验证DBA权限为了验证新用户是否已成功获得DBA权限,可以先注销当前的数据库连接,然后使用新用户重新连接到数据库。

使用以下命令重新连接到数据库:sqlplus new_user/password as sysdba连接成功后,可以使用以下命令查询用户的权限:SQL> SELECT * FROM session_privs;这个查询将会显示新用户所具有的权限列表,其中应该包含DBA权限。

oracle登录失败处理策略

oracle登录失败处理策略

oracle登录失败处理策略Oracle数据库是目前世界上广泛使用的关系型数据库管理系统之一,它提供了可靠的数据存储和高效的数据管理能力。

然而,在一些情况下,我们可能会遇到Oracle登录失败的问题。

针对这种情况,我们需要制定一些处理策略以确保及时解决问题并保证系统的稳定性和安全性。

1. 检查用户名和密码登录失败的一个常见原因是用户名或密码输入错误。

当用户无法登录时,首先应该检查输入的用户名和密码是否正确。

可以使用管理员账户或其他已知正确的账户登录来验证。

2. 确认数据库是否可用登录失败可能也是由于数据库不可用引起的。

当遇到登录问题时,我们应该确认数据库是否在线或服务是否正常运行。

可以检查数据库监听器的状态来确定数据库是否可用。

3. 检查监听器设置监听器是Oracle数据库和网络之间的桥梁,它负责接收来自客户端的连接请求并将其传递给数据库。

登录失败可能是由于监听器设置不正确引起的。

我们应该检查监听器的配置文件,确保监听器正确监听数据库实例并使用正确的端口。

4. 检查网络连接登录失败还可能是由于网络连接问题引起的。

在网络不稳定或连接中断的情况下,Oracle登录可能会失败。

我们应该检查网络连接是否正常,并确保所使用的网络环境稳定。

5. 检查账户状态Oracle数据库中的账户状态对于成功登录非常重要。

账户可能被锁定或过期,这会导致登录失败。

我们应该检查账户状态,确认账户是否被锁定或过期,并相应地采取解锁或更新密码等操作。

6. 检查日志文件Oracle数据库会生成各种日志文件,这些日志文件中记录了系统各个方面的运行情况。

登录失败时,我们可以查看相关的日志文件,例如"alert.log"和"listener.log",以了解更多详细信息,并找到解决问题的线索。

7. 与管理员联系如果上述方法都无法解决登录失败的问题,我们应该及时与Oracle 数据库管理员或技术支持团队联系。

Oracle ORA-01033 错误,ORA-12528 错误和ORA-01041错误处理

Oracle ORA-01033 错误,ORA-12528 错误和ORA-01041错误处理

问题描述:1. 以SYSDBA 身份连接 C:\>sqlplus sys/orcl@orcl as sysdba ,登陆ORCL 库,执行关闭(SHUTDOWN)数据库。

2.然后重新启动(STARTUP)数据库时报错:ORA-12528 :TNS:监听程序:所有适用的例程都不允许建立新的连接ORA-01041:内部错误,hostdef扩展名不存在。

3. 重新用 C:\>sqlplus sys/orcl@orcl as sysdba 登录数据库输入用户和密码后报 ORA-01033:ORACLE initialization or shutdown in progress 的错误。

解决思路:1.首先查看listener状态,在命令行输入lsnrctl status ,结果中显示监听例程ORCL状态为"BLOCKED";2. 以SYSDBA权限登录(注意不指定数据库名),具体步骤:1) 开始 - 运行 -cmd2) 命令行中输入 SQLPLUS SYS/密码 AS SYSDBA3) 输入 SHUTDOWN IMMEDIATE4) 输入 STARTUP再次输入用户和密码登录成功,查看listener状态,结果中显示监听例程ORCL 状态为READY。

问题分析:1、在以 C:\>sqlplus sys/orcl@orcl as sysdba 登陆时,是在库ORCL操作,完成 SHUTDOWN 后,执行STARTUP 时始终是在库ORCL中操作,而这时ORCL 已经关闭了,因此出现错误。

2、重新以 C:\>sqlplus sys/orcl as sysdba 登陆,以空例程登陆时,再STARTUP 时就可以将库ORCL 重新启动。

备注:(1)当有多个数据库实例时,执行shutdown会关闭所有数据库实例,要重新打开,执行startup,而不要指明具体的实例(2)先执行shutdown会关闭所有数据库实例,然后执行startup open orcl,此时执行lsnrctl status ,结果中显示监听例程中其他的数据库实例状态为"BLOCKED";此时通过执行lsnrctl stop和lsnrctl start并不能将这些数据库实例状态从"BLOCKED"变成“Ready”。

oracle的sysdba权限登录问题

oracle的sysdba权限登录问题

最近的时间,在搞数据库的安全加固问题,关于数据库中关于sysdba权限的登录,通过最近的一些实践和测试,在这里记录一下:数据库用sysdba登录的验证有两种方式,一种是通过os认证,一种是通过密码文件验证;登录方式有两种,一种是在数据库主机直接登录(用os认证的方式),一种是通过网络远程登录;需要设置的参数有两个,一个是SQLNET.AUTHENTICATION_SERVICES,一个是REMOTE_LOGIN_PASSWORDFILE。

os认证:如果启用了os认证,以sysdba登录,那么我们只要用oracle软件的安装用户就能登录:sqlplus “/ as sysdba”。

如果我们要禁用os认证,只利用密码文件登录,我们首先要有一个密码文件:D:\oracle\ora92\database>orapwd file=PWDoralocal.ora password=mypassword entries=10;D:\oracle\ora92\database>然后我们要把$ORACLE_HOME/network/admin/sqlnet.ora中设置:SQLNET.AUTHENTICATION_SERVICES= none注意一下,密码文件只在数据库启动的时候加载进去,一旦加载进去,密码文件就脱离了oracle管理,所以我们用orapwd新建密码文件后,里面指定的密码要在数据重启后才能生效:D:\oracle\ora92\database>sqlplus"sys/mypassword as sysdba"SQL*Plus: Release9.2.0.1.0 - Production on Fri May1621:59:422008Copyright(c)1982, 2002, Oracle Corporation. All rights reserved.ERROR:ORA-01031: insufficient privilegesEnter user-name:ERROR:ORA-01017: invalid username/password; logon deniedEnter user-name:ERROR:ORA-01017: invalid username/password; logon deniedSP2-0157: unable to CONNECT to ORACLE after3attempts, exiting SQL*Plus### 这里我们通过改SQLNET.AUTHENTICATION_SERVICES= (NTS)用os认证登录数据库:sys@ORALOCAL(192.168.50.29)> shutdown immediate;Database closed.Database dismounted.ORACLE instance shut down.sys@ORALOCAL(192.168.50.29)>sys@ORALOCAL(192.168.50.29)>sys@ORALOCAL(192.168.50.29)>sys@ORALOCAL(192.168.50.29)> startupORACLE instance started.Total System Global Area bytesFixed Size bytesVariable Size bytesDatabase Buffers bytesRedo Buffers bytesDatabase mounted.Database opened.sys@ORALOCAL(192.168.50.29)>sys@ORALOCAL(192.168.50.29)>sys@ORALOCAL(192.168.50.29)>sys@ORALOCAL(192.168.50.29)> exitDisconnected from Oracle9i Enterprise Edition Release9.2.0.1.0 - Production With the Partitioning, OLAP and Oracle Data Mining optionsJServer Release9.2.0.1.0 - ProductionD:\oracle\ora92\database>D:\oracle\ora92\database>D:\oracle\ora92\database>### 我们把SQLNET.AUTHENTICATION_SERVICES= (NTS)改回去。

oracle最全面的错误疑难解决方案和总结文档

oracle最全面的错误疑难解决方案和总结文档
D:\xiaoqiang\oracle\product\instantclient_11_2目录下的sqlnet。ora文件
通过配置sqlnet。ora文件,可以修改oracle登录认证方式:
SQLNET。AUTHENTICATION_SERVICES=(NTS)是基于操作系统验证
SQLNET。AUTHENTICATION_SERVICES=(NONE)是基于Oracle验证
update;insert;delete;select

预定义角色:把常用的权限集中起来,形成角色(套餐)
比如dba connect resource三种角色
自定义角色:自己定义套餐

在一个数据库实例下:
当一个用户,创建好后,如果该用户创建了任意一个数据对象(表或触发器等),这时我们的DBMS就会创建一个对应的方案与该用户对应,并且该方案名字和用户名一致。
启动oraclehome92TNSlistener服务
2.database instance没有启动:services。msc或开始—〉程序—>管理工具—〉服务启动oralceserviceXXX,XXX就是你databaseSID如zhulin
3。注册表问题:
regedit。msc
进入HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb11g_home1
(2)oradim–startup–sid数据库实例名
linux下:
(1)lsnrctl start(启动监听)
(2)sqlplus sys/chang_on_install as sysdba(以sysdba身份登录)
sqlplus /nolog
conn sys/chang_on_install as sysdba

解决ORACLE数据库提示insufficientprivileges问题

解决ORACLE数据库提示insufficientprivileges问题

解决ORACLE数据库提示insufficientprivileges问题
sys用户使用@连接符提示无效权限的错误ORA-01031:
问题:有同事反映,新安装的数据库使用 conn sys/oracle@xxxx as sysdba登录不上去,提示ORA-01031: insufficient privileges,而用户名密码都是完全正确的,不使用@xxx连接符conn / as sysdba 登录正常。

过程:首先判断当前系统采用的是操作系统认证,再使用system/manager@xxxx登录时没有问题,只有使用sysdba权限的用户登录才会报这种错误。

接下来进行 grant sysdba to scott; 报错,ORA-01994: GRANT failed: password file missing or disabled。

注意,问题就在这里,系统提示密码文件问题。

查找$ORACLE_HOME/dbs下的orapwSID文件,发现存在。

原因:orapwdorcl不正确,应该为orapwORCL,实例名应大写,安装时输入的实例名为小写造成。

Oracle用户角色与权限控制

Oracle用户角色与权限控制
alter user system account unlock;
alter user system identified by abc123;
12.2 权限
权限(Privilege)的最终作用对象是用户。即所有用 户在数据库内的操作对象和可执行的动作都是受到限制的。 Oracle中共有两种权限:系统权限和对象权限。
select * from system.t_employees order by employee_id;
12.3.2 继承角色
角色继承是指一个角色可以继承其他角色的权限信息, 从而减少自身使用grant的机会。
create role role_hr;
grant role_employee to role_hr;
grant update, insert on t_employees to role_hr;
select table_name, grantee, grantor, privilege from dba_tab_privs where table_name = 'T_EMPLOYEES';
create user cat identified by abc;
grant create session to cat;
grant role_hr to cat;
update system.t_employees set status = 'CXL' where employee_id = 13;
12.3.3 禁用和启用角色
每个用户登录数据库时,都可以获得其默认角色。可以 通过查询视图session_roles来获得当前会话下该用户的默 认角色。管理员可以禁用用户的默认角色,一旦禁用,则用 户从该角色获得的权限将不再有效。

as sysdba的登录方式

as sysdba的登录方式

提倡0金币共享文档
因为我是Oracle的菜鸟,所以在这之前我一直都是用下面这种方式登录Oracle的
后来发现如果我的用户名输错了也能登录,如下:
然后我再把密码输错试了一下,发现也能登录,如下:
然后我用“show user”这条语句查看当前用户,发现不论任意用户(包括不存在的用户)和错误的密码虽然能登录Oracle但是那都是无关紧要的,看图:
看到没都是“SYS”用户,后来经过查找资料发现这是用的OS(操作系统)认证登录方式。

一般情况下不建议用这种方式。

一般用户的登录方式是这样的:
版权由“黄集赖勤”保留。

Windows环境ORA-12638错误及SYS用户登录权限验证

Windows环境ORA-12638错误及SYS用户登录权限验证

昨天一个客户朋友在他的办公电脑(Windows XP)上安装ORACLE 11gR2的时候,安装ORACLE软件的时候没出现问题,但是在DBCA建库的时候,出现ORA-12638错误。

ORA-12638 : 身份证明检索失败通过查看资料,这是个和ORACLE的高级安全性验证有关,也可以说是和权限有关的错误,原因是由于Oracle不能应用操作系统认证而导致,经询问,这个朋友的电脑的用户是域用户,而这个问题正好和域用户有关,解决方法是将sqlnet.ora文件里的SQLNET.AUTHE NTICATION_SERVICES= (NTS)注释掉或者将这个参数改为SQLNET.AUTHENTICATION_SERVICE S= (NONE),当然也可以直接把sqlnet.ora文件做备份后删掉。

# This file is actually generated by netca. But if customers choose to# install "Software Only", this file wont exist and without the native# authentication, they will not be able to connect to the database on NT.# SQLNET.AUTHENTICATION_SERVICES = (NTS)SQLNET.AUTHENTICATION_SERVICES = (NONE)NTS是Windows操作系统登录数据库的验证方式,也可以理解成SQLNET.AUTHENTICATI ON_SERVICES = (NTS)只对Windows系统有效,这个参数等于NTS的含义是即可以用口令验证,又可以用操作系统验证的方式来登录ORACLE数据库,这个参数等于NONE表示只允许使用口令验证的方式来登录数据库,而一般情况下域用户不能应用操作系统认证而身份证明检索失败。

oracle授权创建函数的权限

oracle授权创建函数的权限

oracle授权创建函数的权限在Oracle数据库管理系统中,函数(Function)是一种特殊的可调用对象,它接收输入参数并返回一个值。

函数可以被用于各种计算和数据操作,是数据库中重要的组成部分。

当需要在Oracle数据库中创建自定义函数时,我们需要授予相应的权限。

在Oracle中,授予创建函数的权限需要通过“授权(Grant)”语句来完成。

以下是创建函数权限的具体操作步骤:1. 首先,可以使用“sys”或具有“sysdba”角色的用户登录到Oracle数据库。

2. 接着,通过使用“connect”语句连接到相关的用户或模式。

例如,我们可以使用以下语句连接到名为“HR”的用户:```connect HR/password;```3. 在成功连接到用户或模式之后,我们可以使用以下语法来授予创建函数的权限:```GRANT CREATE FUNCTION TO <用户名或角色>;```请注意,"<用户名或角色>"应替换为您想要授权的具体用户或角色名称。

这样,该用户或角色将获得在数据库中创建函数的权限。

例如,如果要授权名为“SCOTT”的用户创建函数,可以使用以下语句:```GRANT CREATE FUNCTION TO SCOTT;```4. 执行完授权语句后,Oracle数据库将授予指定用户创建函数的权限。

该用户将能够使用CREATE FUNCTION语句在数据库中创建自定义函数。

需要注意的是,在授予权限之前,确保用户已经存在,并且具有足够的权限访问所需的表、视图和其他对象。

否则,创建函数的过程可能会受到限制。

为了保证安全性和权限的精细管理,建议仅将创建函数的权限授予有关的用户或角色,以避免滥用或未经授权的操作。

总结起来,通过使用授权语句,可以在Oracle数据库中授予用户或角色创建函数的权限。

这样,他们可以通过CREATE FUNCTION语句创建自己所需的函数,并用于各种计算和数据操作中。

oracle登录失败处理策略

oracle登录失败处理策略

Oracle登录失败处理策略一、引言在使用O ra cl e数据库过程中,登录失败是常见的问题之一。

如果不及时处理登录失败的情况,可能会影响系统的正常运行和安全性。

本文将介绍一些处理Or ac le登录失败的策略,帮助用户有效应对这类问题。

二、常见的登录失败原因1.用户名或密码错误:输入的用户名或密码不正确,导致登录失败。

2.用户被锁定:当用户连续多次输入错误的密码后,系统会自动锁定该用户,使其无法登录。

3.超过最大连接数:当数据库达到最大连接数限制时,新的登录请求将会被拒绝。

4.配置错误:数据库配置文件中的参数设置错误,导致无法登录。

三、登录失败处理策略3.1用户名或密码错误如果登录失败的原因是由于用户名或密码错误,可以采取以下措施:1.仔细检查输入的用户名和密码,确保没有输入错误。

2.确认数据库管理员是否已更改了用户名或密码。

如果是,请及时更新登录信息。

3.2用户被锁定当用户被锁定时,需要解锁用户才能成功登录。

以下是解锁用户的方法:1.使用数据库管理员账号登录,执行以下S QL语句解锁用户:A L TE RU SE R<用户名>A CC OU NT UN LO CK;2.如果用户连续多次输入错误的密码还未被锁定,可以考虑修改用户登录策略,增加登录失败次数的限制,从而提高系统的安全性。

3.3超过最大连接数当数据库达到最大连接数限制时,新的登录请求将会被拒绝。

为了解决这个问题,可以采取以下方法:1.扩大数据库的最大连接数配置。

可以通过修改数据库配置文件或使用A LT ER SY ST EM语句来更改最大连接数。

2.定期监控数据库连接数,及时释放不必要的连接。

通过关闭不使用的连接,释放资源,从而保证有足够的连接数可用。

3.4配置错误如果登录失败的原因是由于数据库配置文件中的参数设置错误,可以按照以下步骤进行处理:1.检查数据库配置文件中的参数设置,特别是相关的登录配置。

确保参数设置正确。

Oracle用户及权限管理

Oracle用户及权限管理

25
2014年5月28日星期三
Oracle数据库管理
Oracle 数据库管理
课堂训练-3
1、设置用户密码失效 2、并测试是否修改成功
26
2014年5月28日星期三
Oracle数据库管理
Oracle 数据库管理
锁定和解除用户锁定
如果要禁止某个用户访问Oracle 系统,那么最好的方式是锁定该用户,而不 是删除该用户。锁定用户并不影响该用户所拥有的对象和权限,这些对象和权限依 然存在,只是暂时不能以该用户的身份访问系统。当锁定解除后,该用户可以正常 地访问系统、按照自己原有的权限访问各种对象。
Oracle 数据库管理
本讲目标
能初步掌握用户的管理 能初步掌握用户权限的管理 能初步掌握角色的管理
3
2014年5月28日星期三
Oracle数据库管理
Oracle 数据库管理
1、用户与模式的关系
用户:Oracle用户是用于连接数据库和访问数据库对象的。 模式(方案):是用户所拥有的数据库对象的集合,模式对象是数 据库数据的逻辑结构
其中
在创建用户时,创建者必须具有create user系统权限。
user_name指定将要创建的新数据库用户名称。 Password指定该新数据库用户的密码。 def_tablespace指定存储该用户所创建对象的默认表空间。 temp_tablespace指定存储临时对象的默认表空间。
18
15
2014年5月28日星期三
Oracle数据库管理
Oracle 数据库管理
oracle的normal 、 sysdba 、 sysoper 有什么区别 ?
注意:system 如果正常登录,它其实就是一个普通的 dba 用户,但是 如果以 as sysdba 登录,其结果实际上它是作为 sys 用户登录的。其 他用户也是一样,如果 as sysdba 登录,也是作为 sys 用户登录的。

oracle,创建用户,授予用户各种权限;ORA-01939错误;ORA-01950错误;。。。

oracle,创建用户,授予用户各种权限;ORA-01939错误;ORA-01950错误;。。。

oracle,创建⽤户,授予⽤户各种权限;ORA-01939错误;ORA-01950错误;。

...3个默认的⽤户:sys orcl [as sysdba]system orclscott tiger创建⽤户:create user gis /*⽤户名*/ identified by gis /*密码*/ ;PRIVILEGE:权限系统权限:grant(revoke) create session to(from) gis;grant(revoke) create table to(from) gis;grant(revoke) unlimited tablespace to(from) gis;grant create seesion to public; #将权限授予所有⽤户。

select * from user_sys_privs; 查看当前⽤户的系统权限。

对象权限:grant(revoke) select on mytable to(from) gis;grant(revoke) all on mytable to(from) gis;select * from user_tab_privs; #查看当前⽤户的表的对象权限:对象权限可以控制到列(只能插⼊和更新控制到列):select * from user_col_privs; #查看当前⽤户的列的对象权限:1) grant update(name) on mytable to sagittys; #在gis⽤户上将mytable表的name列更新权限给sagittys⽤户update gis.mytable set name='laowang' where id=1;commit;2) grant insert(id) on mytable to sagittys;insert into gis.mytable(id) values(7);GRANTEE OWNER TABLE_NAME GRANTOR PRIVILEGE GRA HIE----- ------------------------------ ------------------------------ --GIS SAGITTYS SA SAGITTYS FLASHBACK NO NOGIS SAGITTYS SA SAGITTYS DEBUG NO NOGIS SAGITTYS SA SAGITTYS QUERY REWRITE NO NOGIS SAGITTYS SA SAGITTYS ON COMMIT REFRESH NO NOGIS SAGITTYS SA SAGITTYS REFERENCES NO NOGIS SAGITTYS SA SAGITTYS UPDATE #更新 NO NOGIS SAGITTYS SA SAGITTYS SELECT #查询 NO NOGIS SAGITTYS SA SAGITTYS INSERT #插⼊ NO NOGIS SAGITTYS SA SAGITTYS INDEX #索引 NO NOGIS SAGITTYS SA SAGITTYS DELETE #删除 NO NOGIS SAGITTYS SA SAGITTYS ALTER #修改 NO NO(在CMD中默认宽度到头了则不会规则的显⽰,此时将宽度设为400,set linesize 400,就ok了)语⾔分类:1、 DLL,数据定义语⾔CREATE,CREATE TABLE abc(a varchar(10),b char(10));ALTER,ALTER TABLE abc ADD c NUMBER; 加⼀个c的字段,数据符为NUMBER。

oracle 查询用户权限的语句

oracle 查询用户权限的语句

oracle 查询用户权限的语句Oracle是一种关系型数据库管理系统,可以用来存储和管理大量的数据。

在Oracle中,用户权限是指用户对数据库对象(如表、视图、存储过程等)的访问和操作权限。

用户权限的查询可以帮助管理员了解当前用户的权限情况,以便进行权限管理和安全控制。

下面是一些查询用户权限的Oracle语句:1. 查询当前用户的所有权限:```SELECT * FROM USER_SYS_PRIVS;```该语句可以查询当前用户被授予的系统级权限,返回结果包括权限名称和授权者。

2. 查询当前用户对指定表的权限:```SELECT * FROM USER_TAB_PRIVS WHERE TABLE_NAME = '表名';```该语句可以查询当前用户对指定表的权限,返回结果包括权限类型(如SELECT、INSERT、UPDATE、DELETE等)、授权者和表名。

3. 查询当前用户对指定视图的权限:```SELECT * FROM USER_TAB_PRIVS WHERE TABLE_NAME = '视图名';```该语句可以查询当前用户对指定视图的权限,返回结果与查询表权限的语句相似。

4. 查询当前用户对指定存储过程的权限:```SELECT * FROM USER_PROC_PRIVS WHERE PROCEDURE_NAME = '存储过程名';```该语句可以查询当前用户对指定存储过程的权限,返回结果包括权限类型(如EXECUTE)、授权者和存储过程名。

5. 查询当前用户对指定包的权限:```SELECT * FROM USER_TAB_PRIVS WHERE TABLE_NAME = '包名';```该语句可以查询当前用户对指定包的权限,返回结果与查询表权限的语句相似。

6. 查询当前用户对指定序列的权限:```SELECT * FROM USER_TAB_PRIVS WHERE TABLE_NAME = '序列名';```该语句可以查询当前用户对指定序列的权限,返回结果与查询表权限的语句相似。

登录oracle的五项条件

登录oracle的五项条件

登录oracle的五项条件登录Oracle的五项条件Oracle是世界上最大的关系数据库管理系统(RDBMS)供应商之一,被广泛应用于企业级的数据管理和处理中。

在使用Oracle数据库时,登录是最基本的操作之一。

下面将介绍登录Oracle数据库的五个条件。

1. 用户名登录Oracle数据库的第一个条件是正确的用户名。

数据库管理员(DBA)为每个用户创建一个唯一的用户名,用于标识用户的身份。

用户名是区分不同用户的重要标识,一个用户名可以对应一个或多个数据库对象(如表、视图、存储过程等)。

2. 密码登录Oracle数据库的第二个条件是正确的密码。

密码是保护用户数据安全的重要手段。

用户在登录时必须输入正确的密码才能成功登录数据库。

为了保障安全性,密码应该具备一定的复杂度,包含字母、数字和特殊字符,并定期更新以避免被猜测或破解。

3. 数据库实例名登录Oracle数据库的第三个条件是正确的数据库实例名。

数据库实例是指在计算机上运行的Oracle数据库的一个副本,它由内存和进程组成。

Oracle支持在同一台计算机上同时运行多个数据库实例,每个实例有唯一的实例名。

用户在登录时需要指定正确的实例名,才能连接到相应的数据库实例。

4. 主机名或IP地址登录Oracle数据库的第四个条件是正确的主机名或IP地址。

用户在登录时需要指定数据库所在服务器的主机名或IP地址,以便建立与数据库服务器的网络连接。

主机名是数据库服务器在网络上的唯一标识,用户可以通过主机名来访问数据库。

IP地址是网络中用于标识设备的一组数字,也可以用来访问数据库。

5. 端口号登录Oracle数据库的第五个条件是正确的端口号。

端口号是用于标识应用程序与数据库之间的通信接口。

Oracle数据库默认使用1521端口进行通信,用户在登录时需要指定正确的端口号,以便建立与数据库的有效连接。

登录Oracle数据库的五个条件分别是正确的用户名、密码、数据库实例名、主机名或IP地址以及端口号。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4.Enter user-name:
5.
6.C:\>sqlplus wrong_user/wrong_password sysdba
7.ERROR:
8.ORA-01017: invalid username/password; logon denied
9.Enter user-name:
1.C:\>sqlplus / as sysdba
2.ERROR:
3.ORA-01031: insufficient privileges
4.Enter user-name:
5.
6.C:\>sqlplus sys/change_on_install as sysdba
With the OLAP and Data Mining options
SQL>
C:\>sqlplus wrong_user/wrong_password as sysdba
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
14.With the OLAP and Data Mining options
15.SQL>
C:\>sqlplus / as sysdba
ERROR:
ORA-01031: insufficient privileges
Enter user-name:
C:\>sqlplus wrong_user/wrong_password sysdba
测试一:ora_dba用户本地登陆
Sql代码
1.C:\>sqlplus / as sysdba
2.Connected to:
3.Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
5.ERROR:
6.ORA-01017: invalid username/password; logon denied
7.Enter user-name:
SQL> alter system set remote_login_passwordfile=none scope=spfile;
4.Enter user-name:
C:\>sqlplus sys/change_on_install as sysdba
ERROR:
ORA-01031: insufficient privileges
Enter user-name:
测试二:恢复密码文件,设置REMOTE_LOGIN_PASSWORDFILE=none。使用用户名和密码登陆,失败!
Sql代码
1.SQL> alter system set remote_login_passwordfile=none scope=spfile;
2.System altered.
3.
4.C:\>sqlplus sys/change_on_install as sysdba
10.
11.C:\>sqlplus sys/change_on_install as sysdba
12.Connected to:
13.Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
------------------------------ ------- -------
SYS TRUE TRUE
每次使用grant sysdba/sysoper授予新用户特殊权限或是alter user命令修改拥有sysdba/sysoper权限的用户密码的时候,Oracle都会自动的同步密码文件,这样保证在数据库没有打开的情况拥有特殊权限的用户能正常的登陆数据库以进行管理操作。
10.With the OLAP and Data Mining options
11.SQL>
C:\>sqlplus / as sysdba
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
本文环境配置:Oracle10gR2,Windows XP
Oracle的用户信息一般来说是保存在数据字典里的,所以常规用户在Oracle数据库没有启动的时候是无法登陆的。但有两类用户例外,这就是具有sysdba或者sysoper权限的用户。Oracle sysdba或者sysoper用户的登陆有两种方式:一是通过OS认证,二是通过密码文件验证。
1. 根据SQLNET.AUTHENTICATION_SERVICES的值决定是进行os验证还是密码文件验证。
2. 如果是os验证,根据当前用户的用户组判断是否具有sysdba权限。如果os验证失败,则进行密码文件验证。
2. 如果是密码文件验证,REMOTE_LOGIN_PASSWORDFILE的值以及密码文件是否存在决定了验证是否成功。
如果要使用密码文件验证,则把sqlnet.ora改为SQLNET.AUTHENTICATION_SERVICES=none,或者从sqlnet.ora中删除SQLNET.AUTHENTICATION_SERVICES。同上匿名登陆sqlplus会失败,给出用户名和密码就可以成功登陆。
Sql代码
Sql代码
1.SQL> grant sysdba to logicgate;
2.Grant succeeded.
3.
4.SQL> select * from v$pwfile_users;
5.
ERNAME SYSDB SYSOP
4.------------------------------ ------- -------
5.SYS TRUE TRUE
SQL> select * from v$pwfile_users;
USERNAME SYSDB SYSOP
1. OS 验 证
要启用os验证,就必须在qlnet.ora中设置SQLNET.AUTHENTICATION_SERVICES=(NTS),然后在Windows中建立ora_dba用户组,把相关用户加入到这个组中(e.g., administrator),这样administrator就可以在不用提供用户名和密码(或者提供任意的用户名和密码)的情况下以sysdba身份本地登陆。因为操作系统已经代替Oracle进行了验证。
With the OLAP and Data Mining options
SQL>
测试二:非ora_dba用户本地登陆
Java代码
1.C:\>sqlplus / as sysdba
2.ERROR:
3.ORA-01031: insufficient privileges
Sql代码
1.SQL> alter system set remote_login_passwordfile=exclusive scope=spfile;
2.System altered.
3.
4.C:\>sqlplus sys/change_on_install as sysdba
Connected to an idle instance.
SQL>
3. 密码文件
查看具有sysdba或者sysoper权限的用户:
Sql代码
1.SQL> select * from v$pwfile_users;
2.
ERNAME SYSDB SYSOP
With the OLAP and Data Mining options
SQL>
2. 密码文件验证
密码文件包含了被授予sysdba和sysoper权限的用户的用户名和密码。这是一个加密文件,一般来说存放在%oracle_home%/database目录下,文件名为PWD%sid%.ora。
7.Connected to an idle instance.
8.idle>
C:\>sqlplus / as sysdba
ERROR:
ORA-01031: insufficient privileges
Enter user-name:
C:\>sqlplus sys/change_on_install as sysdba
Connected to an idle instance.
idle>
测试一:删除密码文件。使用用户名和密码登陆,失败!
Sql代码
1.C:\>sqlplus sys/change_on_install as sysdba
2.ERROR:
3.ORA-01031: insufficient privileges
4.With the OLAP and Data Mining options
5.SQL>
6. பைடு நூலகம்
7.C:\>sqlplus wrong_user/wrong_password as sysdba
8.Connected to:
9.Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
相关文档
最新文档