过程、函数、包
create trigger 触发器
create cluster 建簇
create sequence 建索引
create type 2)显示:
oracle 提供了166系统权限,查询数据字典视图 system_privilege_map
select * from system_privilege_map order by name;--查询系统权限 3)赋予系统权限:grant
一般情况下只有DBA才能完成 或者拥有 grant any privilege 权限
赋权限语句后+ with admin option ,实现系统权限的传递(和方案一起理解)
grant connect to sam_sho with admin option 4)权限回收:revoke
不是级联回收。 2、对象权限:访问其他方案对象的权利。用户可以直接访问自己方案的对象,但是如果要访问别的方案的对象,则必须具有对象的权限。 1)内容:
alter 修改
delete 删除
select 查询
insert 添加
update 修改
index 索引
references 引用
execute 执行 2)显示:DBA用户可以查看对象权限 dba_tab_privs
select distinct privilege from dba_tab_privs; 3)赋予对象权限
直接可以赋权限给用户 或者角色
赋权限语句后+ with grant option ,实现系统权限的传递
grant select on emp to sam_sho with grant option
只能赋予用户,不能赋予角色 4)权限回收:revoke
是级联回收。 (三)角色 1、预定义角色:33种 1)常见内容
connect :连接的角色
DBA:管理员角色(sys 和 system)。不具备启动和关闭数据库
resource:这个角色可以在任何表空间中建表。
隐藏了 unlimited tablespace 的权限 2)显示
查看预定义角色:33种角色
select * from dba_roles;
查看角色的系统权限
SELECT * FROM dba_sys_privs where grantee = 'DBA'
SELECT * FROM role_sys_privs WHERE role = 'DBA';
查看角色的对象权限
SELECT * FROM dba_tab_privs where grantee = 'DBA'
查看某个用户的角色
SELECT * FROM dba_role_privs WHERE grantee='SYS'; 2、自定义角色 1)创建角色
注意:
BDA角色创建或者 需要具有create role 权限
在建立角色的时候,可以设置验证方式,如不验证、数据库验证等
不验证建立(一般都是这种)
create role 角色名 not identified
数据库验证
create role 角色名 identified by 密码; 2)给角色赋权限
grant create session to 角色 3)实例
create role myRole not identified;
grant create session to myRole ;
grant select on scott.emp to myRole ;
grant myRole to sam_sho; 3、删除角色
drop role 角色名; (四)给用户赋权限 1、赋予直接的权限。如直接登录权限(create session)
grant create session to sam_sho;
grant select on emp to sam_sho; 2、直接分配角色,批量分配权限。如
grant connect to sam_sho;
授于sam_sho connect的角色,即拥有登录的权限。connect,包含7 种权限。
grant resource to sam_sho; (五)用户的权限操作 1、赋权限:grant 1)语法:grant 权限(角色) to 用户名;
2)实例1:
grant create table to sam_sho:赋予 sam_sho 创建表的权限。
grant dba to sam_sho:赋予 sam_sho dba的角色,其自然具有创建表的角色。 3)实例2
grant select on emp to sam_sho; 把emp表的查询权限赋予sam_sho
SELECT * FROM scott.emp;可以查询,但是需要在表前面加上scott前缀。 2、收回权限:revoke 1)语法:
revoke select on emp from sam_sho; 从sam_sho收回emp表的查询权限 2)注意:
谁授权,谁收回。或者DBA
系统权限,不是级联回收。
对象权限,是级联回收。 3、权限的传递 1)scott把emp表的查询权限赋予sam_sho,sam_sho再把这种权限传递给rabby_zho 2)语法:
对象权限使用 with grant option 进行传递
grant select on emp to sam_sho with grant option;(scott登录)
grant select on scott.emp to rabby_zho;(sam_sho登录)
角色、系统权限使用 with admin option
grant connect to sam_sho with admin option;(scott登录)
grant connect to rabby_zho; 3)回收
系统权限,不是级联回收。
对象权限,是级联回收。
五、方案(Schema) 1、问题:同一个数据库实例 DEV_SAM,创建了2个用户 A 和 B 。用户 A 创建表a_table,B创建表b_table。结果A 访问不了 b_table,B访问不了 a_table 。 2、解决:
当一个用户,创建好后,如果该用户创建了任意一个数据对象,这时,dbms就会创建一个对应的【方案】与该用户对应,并且该【方案】的名字与用户名一致。
在这样的机制下,同一个数据库实例,可以创建多张相同表名的表,但是同一个方案中表名是具有唯一性的。
A 如果需要去访问 B方案下的数据,需要权限的转移。
语法:
grant 权限 to 用户名 【with grant option】 对象权限
grant 权限 to 用户名 【with admin option】系统权限
实例
grant select on emp to sam_sho ;(scott登录)
使用的时候,需要带【方案】名:select * from scott.emp 。
grant all on emp to sam_sho with grant option;可以转移
grant select on scott.emp to sam2;
六、数据库的启动流程(远程登录) (一)windows: 1、lsnrctl start (启动监听) 2、oradim -startup -sid 数据库实例名
oradim -startup -sid orcl 3、附:查看windows系统的信息
systeminfo (二)Linux 1、lsnrctl start (启动监听) 2、sqlplus sys/change_on_install as sysdba
sqlplus /nolog
conn sys/change_on_install as sysdba 3、startup
七、Oracle的登录认证方式 (一)Windows 1、oracle登录认证在windows 和linux 下是不完 |