前阵看完视频教学,oracle的。
下课练习的时候,遇上几个问题。
第一个:
conn 用户名/密码 as sysdba;这里的密码不管是否正确,都能连上,而且,连上后,也同样具有dba的权限。这是为什么啊?
第二个:
conn 用户名/密码 as sysdba;连接后,创建一些表,然后,conn 相同的用户名之后,只是没有以as sysdba;的身份连接后,就不能查到相应的表~~
请各位大虾教教小弟~
下课练习的时候,遇上几个问题。
第一个:
conn 用户名/密码 as sysdba;这里的密码不管是否正确,都能连上,而且,连上后,也同样具有dba的权限。这是为什么啊?
第二个:
conn 用户名/密码 as sysdba;连接后,创建一些表,然后,conn 相同的用户名之后,只是没有以as sysdba;的身份连接后,就不能查到相应的表~~
请各位大虾教教小弟~
2 conn 用户名/密码 as sysdba;连接后,创建一些表,在SYS模式下。conn 相同的用户名之后,只是没有以as sysdba;的身份连接后,在该用户普通模式下。
我补充一下细节.
(1)是Oracle的操作系统验证,因为你既然连操作系统都登上了,那么Oracle也自然给你开权限了,所以你使用任何用户名密码登陆sysdba都不需要验证.
你可以在 我的电脑->管理->本地用户和组里,看看组是不是多个了Oracle_dba,用户是不是已经加入了这个组,会很明了.
另外如果不想使用这种验证可以改%Oralce_Home%/network/admin/sqlnet.ora文件,把
SQLNET.AUTHENTICATION_SERVICES= (NTS)改成SQLNET.AUTHENTICATION_SERVICES= (none).(2)你以dba身份登陆创建的表是在dba用户下面的,而你登陆非sysdba的用户看不到是因为那张表不是创建在你这个用户下的,Oracle数据库中用户的表是分离的.
也就是A用户下建的表就是A的,B用户是看不到的.(我是指大部分)
如果不以as sysdba登录,则为相应的普通用户了,普通用户下是不能直接访问SYS用户的表的,如果该用户具有DBA权限,是可以通过 用户名.表名 来访问的