ORACLE学习--有关用户及权限的控制

三个默认用户 
sys     change_on_install  //网络管理员                 [as sysdba]
system  manager     //本地管理员
scott   tiger    //在oracle10 中默认锁定     普通用户

启动实例 oradim -starup -sid orcl
创建用户 sqlplus  / as sysdba

SQL>show user; //

创建用户及权限控制
SQL>create user hanm identified by phan;//密码是phan
SQL>grant create session to hanm;  //给hanm授权
SQL>grant create table to hanm;//建表权限
SQL>grant unlimited tablespace;//使用表空间的权限   没有任何限制的使用表空间
SQL>
SQL>
SQL>sqlplus hanm/phan //登录
SQL>create table mytable (id int);
SQL>insert into mytable values(1);
SQL>select * from mytable;//当一个用户有使用空间和创建表的权限时,这个用户就可以对这个表进行增、删、改、查等因为这个表属于这个用户
SQL>revoke create table from hanm;//撤消权限
查询数据字典
SQL>select * from user_sys_privs;//这是一个系统提供的视图,里面放的是系统信息

SQL>
系统权限和对象权限
SQL>create user wangwu identified by wangwu;
SQL>grant create session to wangwu;
SQL>grant create table,unlimited tablesapace to wangwu;
//wangwu login
SQL>create table mytable(id int);
SQL>insert into mytable values(1);
//lisi login
SQL>select * from wangwu.mytable;//访问wangwu的一个表
//sys login
SQL>sys有权限但看不到,这需要wangwu进行commit;数据才能写入硬盘
//让lisi可以访问wangwu的表    wangwu login
SQL>grant select on mytable to lisi;
SQL>grant insert on mytable to lisi;
SQL>grant all on mytable to lisi;//把与对象相关的所有权限授予lisi
SQL>revoke all on mytable from lisi;//把与对象相关所有权限撤消
//谁拥有这个对象谁就可以把权限授予出去

SQL>grant create session to public;//把某一权限授予所有用户public
SQL>
SQL>set linesize 400 //将一个行的宽度设大一些    //在dos命令行中可能窗口的宽度会限制窗口大小
权限可以控制到列的级别
SQL> grant update(name) on mytable to lisi;//只允许lisi更新name一列
//插入和更新可以控制到时列,而删除和查询是无法控制到列的。
SQL>select * from user_tab_privs;//查看拥有对列的权限
SQL>
//权限的
SQL>grant alter any table to lisi with admin option;
SQL>grant select on A to lisi with grant option;

//问题A把权限给B,B把权限给C 如果撤消A给B的权限,那C还有权限吗?
//角色就是权限的集合
SQL>create role myrole;//创建权限
SQL>grant create session to myrole;
SQL>grant create table to myrole;
SQL>create user zhangsun identified by zhangsan;
SQL>grant myrole to zhangsan;//将一个角色授予zhangsan
SQL>drop role myrole;//删除角色
//有些权限很高不能授予角色,只能授予用户。比如unlimited tablespace
//[alter table] alter anytable
//[drop table] drop any table
//表是属于某一个用户的,但是角色不论谁创建,都是大家共用的
丢失管理员密码怎么办?
SQL>alter user scott identified by tiger;//修改普通用户的密码
ORACLE数据库的验证机制
数据库的三种验证机制
 操作系统验证
 密码文件验证
 数据库验证//普通用户用这种方式

windows下oracle的启动过程
lsnrctl start
oradim -starup -sid orcl

linux下oracle的启动过程

lsnrctl start

dbstart start

sqlplus /nolog

conn sys/pwd as sysdba;

startup;

密码丢失

普通用户密码丢失由管理员用户重新设置密码

管理员用户密码丢失则:
1、PWDorcl.ora  orcl是实例名,把其删掉
2、orapwd file=E:/oracle/ora92/database/pwdora9i password=123456   //重新生成密码文件
select * from v$pwfile_users;//显示所有特权用户
SQL>
SQL>alter user [username] account lock
SQL>alter user [username] account unlock
SQL>alter user [username] password expire//用户密码即刻失效,即登录就改密码
SQL>drop user [username] cascade;  //cascade把用户的对象也删除
SQL>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值