oracle sub(),oracle学习笔记(二)

表操作

#修改一个列的数据类型(一般限于修改长度,修改为一个不同类型时,需要当前列为空)

oracle最常用的字符类型有三个:char,varchar ,varchar2(推荐使用)

最长字符长度分别是:2000,4000,4000

date类型定义:TODAY DATE "YYYY-MM-DD HH24:MI:SS"

ALTER TABLE 表名 MODIFY(列名 数据类型);

如:

ALTER TABLE emp MODIFY(weight NUMBER(3,0) NOT NULL);

#给列改名:

ALTER TABLE 表名 RENAME COLUMN 当前列名 TO 新列名;

如:

ALTER TABLE emp RENAME COLUMN weight TO weight_new;

#将一个表改名:

ALTER TABLE 当前表名 RENAME TO 新表名;

如:

ALTER TABLE bouns RENAME TO bonus_new

给某用户指定权限

比如用户A想操作用户B下的某一个表,那么可以登录用户B输入以下指令:

grant all on tablename to A;

这样,A就拥有了B下面 tablename 这个表的所有权限。

同理如果只是想赋某种权限的话,以下语句可供参考:

grant create tablespace to A;

grant select on tabelname to A;

grant update on tablename to A;

grant execute on procedurename to A; 授权存储过程

grant update on tablename to A with grant option; 授权更新权限给A用户,A用户也可以将此权限继续授权给别人;

但是with grant option 这个命令有个权限管理问题,当管理员给A赋予上述权限时,则A可以把update tablename的权限赋予其他用户例如D,事后,如果管理员收回A的 with grant option 权限,则D的权限也失效,但管理员却不能直接从D那收回update tablename 的权限。

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>扩展笔记: with admin option

此命令的权限传播是不会失效的,例如

管理员给A 赋予 grant create tablespace to A with admin option;

然后 A 又 赋予C grant create tablespace to C;

于是 A 和 C 分别创建了 table1 和 table2,

此时管理员却收回了 A的 with admin option 权限 revoke create tablespace from A;

那么C的 create 权限 却依然保留,table1 table2 也依然保留。

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

>>>>给所有用户向表 tablename 插入记录的权限:

grant all on tablename to public;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值