表空间操作
--创建表空间
create tablespace spacename logging datafile 'e:\dbtest\abc.dbf' size
32m autoextend on next 32m maxsize unlimited extent management local
--删除表空间
drop tablespace spacename including contents and datafiles
--查询所有表空间
select tablespace_name from dba_tablespaces
--创建用户并指定表空间
create user testuser identified by 123 default tablespace sapcename
权限
用户 | 角色 |
---|---|
sys | 系统管理员 |
system | 本地管理员 |
scott | 普通管理员 |
授权
-- 授予用户登录权限
grant create session to testuser
-- 授予使用表空间的权限
grant unlimited tablespace to testuser
-- 授予创建表的权限
grant create table to testuser
-- 授予删除表的权限
grant drop any table to testuser
-- 授予插入表的权限
grant insert any table to testuser
-- 授予修改表的权限
grant update any table to testuser
-- 授予创建存储过程和自定义函数的权限
grant create procedure to testuser
-- 授予创建触发器的权限
grant create trigger to testuser
--授予创建视图的权限
grant create view to testuser
-- 授予动态执行表访问权限
grant select on v_$session to testuser
grant select on v_$sesstat to testuser
grant select on v_$statname to testuser
-- 授予所有权限给所有用户
grant all to public
普通用户之间互相授权
--oralce对权限管理比较严谨,普通用户之间也是默认不能互相访问的,需要互相授权
grant select on tablename to testuser
grant drop on tablename to testuser
grant insert on tablename to testuser
grant update on tablename to testuser
--授予对指定表特定字段的插入和修改权限,注意,只能是insert和update
grant insert(id) on tablename to testuser
grant update(id) on tablename to testuser
--授予testuser 用户alert中任意表的权限
grant alert all table to testuser
角色
角色是相关权限的集合,使用角色能够简化权限的管理。简而言之就是oracle可以事先把一系列权限集中在一起(角色),打包赋予给用户,那么用户就具有了角色的一系列权限。
oracle预定义角色有25种,它是oracle提供的角色。经常用到的角色有connect、resource、dba三种角色。建一个用户,多数情况下,只要给用户赋予connect和resource角色就够了。
connect角色具有一般应用开发人员需要的大部分权限,connect角色具有的系统权限如下:
alter session
create cluster
create database link
create session
create table
create view
create sequence
resource角色具有开发人员需要的其他权限,如建立存储过程、触发器等,resource角色等,resource角色隐含了unlimited tablespace系统权限(无限制表空间),resource的系统权限有:
create cluster
create indextype
create table
create sequence
create type
create procedure
create trigger
dba角色具有所有系统权限及with admin option选项,默认dba用户为sys和system,它们可以将任何系统权限授予给其他用户。但是dba角色不具备sysdba和sysoper的权限,即启动和关闭数据库。
将角色拥有的权限赋予用户
grant connect to testuser
撤销权限
基本语法同grant,关键字为revoke
查看当前用户所有权限
select * from user_sys_privs
自定义函数
--无参的函数
create or replace function functionname return varchar2 is
v_result varchar2(20);
begin
insert into tb_menu values(2,'公告管理');
commit;
return '添加完了';
end functionname ;
--带参数的函数
create or replace function functionname (v_name in varchar2,v_id in int)
return varchar2 is
v_result varchar2(20);
begin
insert into tb_menu values(v_id,v_name);
commit;
return '添加完了';
end functionname;
存储过程
--无参存储过程
create or replace procedure procedurename is
begin
insert into tb_user values(1,'张三');
commit;
end procedurename;
--带游标输出参数的存储过程
create or replace procedure procedurename(data out sys_refcursor) is
begin
open data for select * from tb_menu;
end procedurename;
触发器
create or replace trigger triggername after delete on tablename for each row
begin
insert into tb_user values(2,'李四');
end triggername;
视图
create or replace view viewname as
select t.m_id,t.mname from tb_menu t