oracle使用总结
2011-08-17 18:37
302 查看
3个默认的帐户:
对于oracle 9来说: sys change_on_install 网络管理员 [as sysdba] system manage 本地管理员 scott tiger 普通用户 默认锁定,需解锁才能用
对于oracle 10来说:
sys和system是没有密码的,scott也没有密码,都要自己设定,scott使用需解锁。 常用操作:
sqlplus lisi/lisi 用户登录 disconn; 断开连接(用户已经登录成功的情况下才能使用) conn lisi/lisi; 打开连接(用户已经登录成功的情况下才能使用) commit; 提交数据,每次进行增、删、改之后就要执行这个命令,以保存到硬盘上,
其他用户操作时,才会数据一致。
创建用户:
一般用sys进行操作: create user lisi identified by lisi; 系统权限:(进行DDL操作的权限)
授权: grant create session to lisi; 会话权限,每个用户都要有这个权限后才能登陆 grant create table to lisi; 建表权限,建表之前先要有表空间 grant unlimited tablespace to lisi; 不受限表空间权限,可以对数据库中所有表空间进行操作
有了这三个授权之后才能对表进行CRUD操作
撤消权限: revoke create session from lisi; revoke create table from lisi; revoke unlimited tablespace from lisi;
将某个权限公开(比如sys帐户的以下两个权限): grant create session to public; grant create any talbe to public; 查看权限表: set linesize 400 设置行宽度 select * from user_sys_privs 对象权限(进行DML操作的权限): grant select on mytab to lisi; 把对表的查询权限授予lisi grant all on mytab to lisi; 把对表的增、删、改、查、索引、外键等权限授予lisi revoke select on mytab from list; 对lisi撤消对表的查询权限 revoke all on mytab from lisi; 对lisi撤消对表的所有权限 select * from user_tab_privs; 查看用户对表的操作权限范围 对象权限可以控制到列(仅限于增、改): grant update(name) on mytab to lisi; 把对表中name字段的更新权限授予lisi grant insert(id) on mytab to lisi; 把对表中id字段的插入权限授予lisi select * from user_col_privs; 查看用户对表中列的操作权限范围 注意:查询和删除不能控制到列。 ddl----数据定义语言 dml----数据操纵语言 dcl----数据控制语言 dml中的增删改需要 commit , 其他不用;
如果忘记了commit,可能用不同的用户对同一表进行操作时,会发生资源冲突(不能进行DML操作),
同一个用户操作时;会看不到最新的数据结果。commit是把数据写到硬盘上。 权限的传递: grant alter any table to lisi with admin option;
注:在oracle 10中,假设sys用户授予alter any table给lisi,lisi又把这个权限授予给wang,
当sys撤消lisi的alter any table权限时,wang的alter any table权限还会存在。
grant select On A to lisi with grant option;
注:在oracle 10中,假设sys用户授予select On A 给lisi,lisi又把这个权限授予给wang,
当sys撤消lisi的select On A权限时,wang的这个权限也会被撤消。 角色 create role myrole; grant create session to myrole;
grant create table to myrole; drop role myrole;
不能把unlimited tablespace权限授予自定义的角色,因为这个权限比较大,是一个比较特殊的权限。 注意: create table 可以给自己创建表 create any table 创建任意一个用户的表 [alter table] 没有这个权限 alter any table 修改任意一个用户的表 [drop table] 没有这个权限 drop any table 删除任意一个用户的表 当一个用户有了create any table权限时,也就有了另外两个权限。 由于create any table权限较大,所以不建议把它授予给角色。
表是属于某一个用户的。 而角色不属于某个用户,是一个用户集合。
数据库的三种验证机制: 操作系统验证 / (当前window用户,系统管理员权限) 密码文件验证 sys 数据库验证 scott linux下的oracle的启动过程 lsnrctl start sqlplus sys/oracle as sysdba startup window下的oracle的启动过程 lsnrctl start 启动监听器 oradim -startup -sid orcl 启动数据库实例
管理员密码丢了怎么办?
★假设用户是scott,密码丢了,要对它进行修改。
1.用sys登陆 sqlplus / as sysdba;注,这是操作系统验证,
或者使用sqlplus sys/sys as sysdba;进行登录
2.执行sql语句 alter user scott identified by tiger;
经本人试验,通过。
★如果用户是sys,由于它属于SYSDBA,采用操作系统验证和密码文件验证(SYSOPER也是采用这两种验证),
当我们使用sqlplus / as sysdba进行登录时,就是使用操作系统验证,由于你在window下是管理员,
默认安装时会把当前用户添加到ora_dba用户组中,所以有权限登录。
这样比较危险,打开计算机管理->本地用户和组->组->ora_dba,把当前window用户从表中删除,
这样用sqlplus / as sysdba就不能登录了。 ★假设上面的操作都做了,这时就要使用sqlplus sys/sys as sysdba进行登录了,而在这种情况下只有一种验证,
那就是密码文件验证,所以如果忘了sys的密码,这时就要执行以下操作:
1.找到PWDorcl.ora
一般位于C:\oracle\product\10.2.0\db_1\database\下,找到后将PWDorcl.ora删除。
2.使用命令重新生成PWDorcl.ora
在命令行中,输入
orapwd file=C:\oracle\product\10.2.0\db_1\database\PWDorcl.ora password=sys entries=10
执行完成后,sys的密码就改成了sys了。
经本人试验,通过。file指PWDorcl.ora文件的路径,password就是sys的密码,entries是用户数量
帐户管理细节创建用户的完整格式:create user 用户名 identified by 密码default tableSpace 表空间Temporary TableSpace 表空间Quota 整数[ K | M ] | Limited | unlimited on 表空间例子:create user abcidentified by 123default tablespace UsersTemporary tablespace TempQuota 50M on Users限制用户:用户加锁 -- alter user 用户名 account lock用户解锁 -- alter user 用户名 account unlock用户口令即刻失效 -- alter user 用户名 password expire(登陆成功即修改密码)删除用户:drop user 用户名 [CasCade]CasCade表示删除用户所有对象示例:drop user abc cascade;
一个完整的示例:
sqlplus sys/sys as sysdba;
SQL> create user zhang identified by zhang default tablespace users
temporary tablespace temp quota 100M on users;
SQL> create role myrole;
SQL> grant create session to myrole;
SQL> grant create table to myrole;
SQL> grant myrole to zhang;
sqlplus zhang/zhang
SQL> create table teacher(id int,name varchar(10));
SQL> show user;编辑器加载中...
相关文章推荐
- oracle使用小问题总结
- Oracle 游标的使用总结
- 对于Oracle analyze table的使用总结 . 对于Oracle analyze table的使用总结 .
- oracle之spool详细使用总结
- 对于Oracle analyze table的使用总结 . 对于Oracle analyze table的使用总结
- Oracle游标使用总结
- ORACLE时间日期格式使用总结(参考网上资料汇总)
- Oracle使用总结
- Oracle 内存表的使用方法总结
- Oracle Hash分区的使用总结
- Oracle中 lsnrctl命令使用总结(推荐)
- Oracle Timesten使用方法总结
- JavaWeb学习总结(三十五)——使用JDBC处理Oracle大数据
- Oracle 三种表关联方式的总结, 使用hint来验证
- oracle 平常使用总结
- Oracle 游标使用总结
- ORACLE时间日期格式使用总结(参考网上资料汇总)
- oracle的sqlldr的使用总结
- SQL Server 使用OPENROWSET访问ORACLE遇到的各种坑总结
- Oracle使用总结