看的oracle数据库视频 记的一点笔记

时间:2023-01-21 16:40:56
3个默认的用户
   sys          //网络管理员  权限由上到下降低 【最后加上 as sysdba】
   system  //本地管理员
   scott     //普通用户  默认密码:tiger
创建用户:show user;//显示用户
           create user lisi identified by lisi;(前面为用户名,后面为密码)
            drop user lisi;//删除用户lisi
           grant create session to lisi;(给用户授予session权限,不然连登陆的权限都没有)
           grant create table to lisi;(给用户授予创建表的权限)(其它权限不用授予,及有创建权限自动拥有查找、修改、删除权限)
           grant unlimited tablespace to lisi;(授予用户不受上线的表空间权限,无空间权限也无法创建表)
           grant create any table to public;//将创建表的权限授予给所有用户,其它权限类推
           revoke create table from lisi;//撤销lisi创建表的权限
创建表:
         create table mytable (id int);//创建表
         insert into mytable (id)values(1);//插入表
         select * from mytable;//查询
         drop table mytable;//删除表
         commit;//手动保存数据

查看当前用户所有权限(数据字典不同)
        select * from user_sys_privs;//查看系统权限
        select * from user_tab_privs;//查看对象权限
        select * from user_col_privs;//查看列权限

其它用户查看某个用户的表:(所有事物必须提交,不然没有数据  【commit】)
    sys查看: select * from wangwu.wangtable;  //必须要标注好访问谁的数据表,不然oracle会默认访问自己的表而出错
    普通用户未经授权是无法访问其它用户的表的;授权如下(访问及select)
    sys给lisi授权:
    grant select on wangwu.wangtable to lisi;//授予lisi访问wangwu的wangtable的权限
    wangwu给lisi访问授权:(select)
    grant select on wangtable to lisi;
    grant select on wangtable to public;//将查询权限授予给所有用户
    wangwu给lisi授予插入权限:(insert)
    grant insert on wangtable to lisi;
    wangwu授予lisi所有权限(及增删改查);
    grant all on wangtable to lisi;
    wangwu撤销对lisi的所有权限(仅限wangtable表);
    revoke all on wangtable from lisi;
    wangwu对wangtable添加一列:
    alter table wangtable add name varchar(10);//添加name列
    wangwu授权lisi更新name列的权限:
    grant update(name) on wangtable to lisi;//仅能更新name列
    wangwu授权lisi插入id列的权限:
    grant insert(id) on wangtable to lisi;//仅能插入id列

系统权限由系统权限授予,对象权限者是谁拥有谁授予

系统权限的传递:
grant alter any table to lisi;//授予lisi修改任何表的权限,但是lisi没有权限授予wangwu它lisi已有的系统权限
grant alter any rable to lisi with admin option;//这个就是对lishi权限的补充,让他有权限去将自己的系统权限授予wangwu
然后lisi可以进行如下操作:
grant alter any table to wangwu;
grant alter any table to wangwu with admin option;//如上类推
对象权限的传递:
grant select on A to lisi with grant option;//系统赋予lisi权限,让lisi有传递对象传递的权限
grant select on A to lisi with grant option;//如上类推

角色:角色就是权限的集合
create role myrole;//创建一个角色myrole
grant create session to myrole;//赋予session权限给myrole
grant create table to my role;//赋予创建表的权限给myrole

grant myrole to zhangsan;//将myrole的权限赋予给zhangsan

drop role myrole;//删除角色
有的系统权限是无法授予给角色的:
grant unlimited tablespace to myrole;//无法授予权限给myrole角色,该权限太大,要直接授予给用户
 
grant create table to myrole;//可以,只能给自己新建一个表
grant create any table to myrole;//可以,不仅能给自己新建一个表,还可以给其它用户新建一个表
grant alter any table to myrole;//可以
grant alter table to myrole;//错误
grant drop any table to myrole;//可以
grant  drop   table to myrole;//错误
表属于某个用户
角色不属于某个用户

用户密码丢失:
管理员不能查看密码,但是可以更改密码
alter user lisi identified by zhangsan;  //将lisi的密码改zhangsan(原始密码为lisi)
 
oracle数据库的三种验证机制:
1、操作系统验证//sysdba和sysoper用验证机制此种 
2、密码文件验证//sysdba和sysoper用验证机制此种 
3、数据库验证

linux和unix下  oracle的启动顺序:
 1、lsnrctl start (启动监听)
 2、新版本:
      sqlplus / as sysdba【或者 sqlplus  sys/oracle as sysdba】
      早期版本:
      sqlplus / nolog
      conn sys/oracle as sysdba
 3、startup (启动数据库)
windows下 oracle的启动顺序:
  1、lsnrctl start (启动监听)
  2、oradmin  -starup  -sid orcl
要先打开服务和监听器(否则无法连接数据库【可以直接按下O找到以O开头的服务或者在我的电脑图标右键。。。】):
看的oracle数据库视频 记的一点笔记
就可进去操作数据库了:
看的oracle数据库视频 记的一点笔记
当然navicat也是可以的:
看的oracle数据库视频 记的一点笔记