自己总结的有关Oracle用户权限的一些基本命令:
用户与模式:scott system 用户和模式是一一对应的关系 并且两者名称相同
建立用户:数据库验证
用户名用dba来创建,create user命令
oracle 采用数据库验证方式
建立用户的语法:
create user test --建立用户名
identified by test --建立密码
default tablespace users_ts --建立表空间名
temporary tablespace temp_ts --建立临时表空间名
quota 3m on users_ts --使用空间大小
连接到数据空的初步操作:新建的数据库在创建之初是没有任何权限,需要授予会话权限才能与数据库建立连接
会话权限
sql>connect system/manager
grant create session to test
connect test/test
建表权限
sql>connect system/manager
grant create table to test
connect test/test
create table.......
-特权用户主要执行数据库的维护操作, 启动 关闭 建立 备份 恢复
--修改用户
--修改用户口令
connect test/test@test
alter user test identified by test
--修改用户空间的配额
sqlplus system/manager@test
sql>alter user test quota 10m on users_ts
(用户的信息一般由dba来修改,但是口令用户自身可以由修改)
删除用户
drop user test;
(一由dba来完成,如果模式中包含数据库对象,则必须带cascade)
drop user test cascade;
权限(privilege):[系统权限,对象权限]--限制用户可执行的操作,SQL。。。访问其他对象
create tablespace ,create user
create session ,create role
create table ,create view
create procedure ,create sequence
create synonym , create any table
create any view;
--初始用户没有任何权限,需要由DBA(或有DBA权限的用户)授予系统权限
--语法实例
sqlplus system/manager@test
sql>grant create session,create table to test;
--回收权限
--语法实例
sqlplus system/manager@test
sql>revoke create session,create teble from test;
--显示当前用户的系统权限
select * from user_sys_privs
--显示当前会话权限
select * from session_privs
--对象权限(访问其他模式对象的权限。用以控制一个用户对另一个用户的访问权限)【常用的对象权限 insert select update delete execute】
示例:
sql>connect b/b --连接B 账户
sql>grant select ,insert on TX to A;
--回收对象权限
示例:
sql>connect b/b --连接B账户
sql>revoke select,insert on TX to A;
--查询用户所拥有的对象权限
select * from user_tab_privs
角色:权限的管理
--创建角色
示例:
create role test_role ;
--给角色授权
示例:
grant create session,create table to test_role;
--使用角色给用户授权
示例:
grant test_role to test;
--删除角色
示例:
drop role test_role;
数据词典:用于提供数据库的相关信息,主要由表和视图组成,其中表是不能直接访问的,但可以访问视图。它的是维护和修改是由数据库自动完成的,
用户只能执行查询。它属于SYS模式,同时存放在SYSTEM表空间中。有静态 和动态之分。
--静态数据词典分三类:
user_* (当前用户所拥有的对象信息)
all_* (当前用户所能够访问的对象信息)
dba_* (数据库中所有对象的信息,但是需要由dba对象权限)
--常用的静态视图示例
select * from user_users (描述用户的当前信息,包括用户名,id ,账户状态,表空间名 ,创建时间)
select * from user_tables (描述当前用户所拥有的表的信息,包括表名,表空间,簇名)
select object_type ,stutas from user_objects
where object_neme=upper('package1') (当前用户拥有的所有对象信息,包括表 视图 存储过程 触发器 索引)
--动态数据词典,由系统管理员维护,当数据库运行时不断更新。
常用的 v$access v$session V$context