oracle symonym_创建Oracle synonym 详解

--创建使用同义词

--同义词就是给表、视图等对象取得别名,用于简化对其的访问

--分为2种:

--私有同义词:用户自己创建自己使用的

--公共同义词:dba创建,给其它用户使用的

--为dept_sum_vu视图创建一个同义词

--不使用public关键字创建的同义词就叫做私有同义词

create synonym d_sum for dept_sum_vu;

--通过同义词访问视图

select * from d_sum;

--SQL 错误: ORA-01031:权限不足

create public synonym hremp1 for employees;

--以下操作由sys操作

--为hr的copy_emp表创建公共同义词

create public synonym hrcemp1 for hr.copy_emp;

--将访问同义词的权限给所有用户

grant select on hrcemp1 to public;

--权限控制:

--schema是表、视图、序列等对象的集合。

--schema被一个数据库用户拥有并且和用户有相同的名字。

--以下操作由sys完成

--创建新用户

create user demo identified by demo;

--授予demo登录到数据库的权限

grant create session to demo;

--授予demo创建各种对象的权限

grant create table,create view,create sequence,create procedure to demo;

--为了简化权限管理,使用角色

--1、创建角色

create role manager;

--2、给角色授权

grant create table,create view to manager;

--3、将角色授给用户,那么用户就拥有了角色拥有的权限

grant manager to demo;

--修改自己的口令

--由hr操作

alter user hr identified by hr;

--授予对象权限给其它用户

--将hr的dept80表的查询权限授给demo

grant select on dept80 to demo;

--将hr的dept80表的last_name和annsal列的修改权限授给demo

grant update(last_name,annsal) on dept80 to demo;

--授权时使用with grant option选项

--它的含义是:允许被授权的用户继续将同样的权限授给其它用户

--以下由sys操作

create user demo1 identified by demo1;

grant create session to demo1;

--以下由hr操作

grant select on dept80 to demo with grant option;

--以下由demo操作

grant select on hr.dept80 to demo1 with grant option;

----以下由hr操作

--查询数据字典得到有关权限的信息

DESC role_sys_privs;

--查看角色具备的系统权限

select * from role_sys_privs;

--查看自己把哪些对象的访问权限授给了哪些用户

select * from user_tab_privs_made;

--查看其它用户把哪些对象的访问权限授给了自己

select * from user_tab_privs_recd;

--废除对象权限

revoke select on dept80 from demo;

--注意:demo通过传递授权授给demo1的访问hr的dept80

--表的权限同时被废除。

--系统权限也可以进行传递授权,使用with admin option选项

--废除系统权限时,通过传递授权授予的系统权限不会被同时废除

--管理schema对象

--使用alter table语句添加、修改、删除列

bonus number constraint bonus_ck

--给表添加一个新的列

--1)不能指定列要出现在哪里。新列成为最后的列。

--2)当添加列时,如果表中已经包含了行,对所有的行来讲,

--新的列被初始化为null,或者赋予默认值。

--给dept80表添加一个job_id列

alter table dept80 add (job_id varchar2(9));

alter table dept80 add (job_id1 varchar2(9) default 'abc');

--2、alter table...modify:

--修改表中已有列的定义

--列修改包括改变列的数据类型、大小和默认值。

--可增加数字列的宽度或精度

--可增加字符列的宽度

--可减少列的宽度,如果:

--  列只包含null值

--  表没有行

--  减少列宽度不少于列中已有的值

--如果列中只包含null值可改变数据类型。

--列的默认值的改变只影响后续插入的行

--将dept80表的last_name列的宽度增加到30

alter table dept80 modify (last_name varchar2(30));

--将dep

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值