mysql truncate 授权_Oracle给用户授权truncatetable的实现方案
1,对其它用户下的表执行trundate table操作
开发说在用dwetl下执行调用shop用户下的表的时候提示没有权限操作,google了查了下,发现oracle账户没法直接赋予对某个表的truncate权限,那要怎么来实现呢?
在shop用户下面,准备测试数据
SQL> create table Z_TRUNCATE_T(ID number);
Table created.
SQL> insert into Z_TRUNCATE_T select 1 from dual;
1 row created.
SQL> commit;
Commit complete.
SQL> select * from Z_TRUNCATE_T;
ID
----------
1
SQL>
2,比较粗鲁不安全的做法
通常赋予truncate的常规做法,是直接赋值drop any table给一个用户
SQL> grant drop any table to dwetl;
Grant succeeded.
SQL>
SQL> grant select,insert,delete,update on Z_TRUNCATE_T to dwetl;
Grant succeeded.
SQL>
干完活,需要赶紧马上收回权限因为drop any table权限是在太大了,一不小心就会造成误删除,到时候哭都来不及啊
SQL> revoke drop any table from dwetl;
Revoke succeeded.
SQL> revoke select,insert,delete,update on shop.PLAN6_TEMPLET_NODE_EDIT from dwetl;
Revoke succeeded.
SQL>
3,比较安全的做法
建立一个存储过程p_truncate,在存储过来里面执行truncate table Z_TRUNCATE_T;然后赋予另外一个用户dwetl对这个存储过程的执行权限。
存储过程p_truncate如下:
create or replace procedure p_truncate as
begin
execute immediate 'truncate table Z_TRUNCATE_T';
end;
建立存储过程:
SQL>
create or replace procedure p_truncate as
begin
execute immediate 'truncate table Z_TRUNCATE_T';
4 end;
5 /
Procedure created.
SQL>
赋予存储过程的执行权限给dwetl,并且赋予表的增删改查权限,因为truncate后,紧接着的基本就是insert、update、delete了
SQL> grant execute on p_truncate to dwetl;
Grant succeeded.
SQL>
SQL> grant select,insert,delete,update on Z_TRUNCATE_T to dwetl;
Grant succeeded.
SQL>
通过dwetl账号登陆,执行存储过程查看效果,看到shop用户下的表Z_TRUNCATE_T已经被清空了,ok,如此也证明了通过存储过程这种方案是可行的,可以对别的用户下的表进行truncate table操作。
–查看
SQL> call shop.p_truncate();
Call completed.
SQL> select * from shop.Z_TRUNCATE_T;
no rows selected
SQL>
以上所述是小编给大家介绍的Oracle给用户授权truncatetable的实现方案,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
mysql truncate 授权_Oracle给用户授权truncatetable的实现方案相关推荐
- mysql 8.0.21 对用户授权报错 near ‘IDENTIFIED BY ‘123456‘ with grant option‘ at line 1
mysql 8.0.21 对用户授权报错 near 'IDENTIFIED BY '123456' with grant option' at line 1 问题描述 mysql在创建用户,对用户授权 ...
- mysql数据库的密码破解/用户授权/备份/图形化管理工具phpmyadmin
mysql数据库的密码破解/用户授权/备份/图形化管理工具phpmyadmin 1.数据库密码管理 a)数据库密码更改(知道数据库原密码) 实验步骤: 1)使用mysqladmin -u指定用户 -p ...
- mysql给用户授予某数据库权限_mysql 数据库授权(给某个用户授权某个数据库)
mysql 数据库授权(给某个用户授权某个数据库) 2016-10-10 带你飞 1.新建用户. //登录MYSQL @>mysql -u root -p @>密码 //创建用户 mysq ...
- mysql删除用户所有授权_mysql删除用户授权的方法
本节内容: mysql使用REVOKE命令删除用户授权. 在mysql数据库中取消一个用户的权限,使用REVOKE语句. REVOKE的语法非常类似于GRANT语句,除了TO用FROM取代并且没有IN ...
- mysql对库授权alter_mysql 数据库授权(给某个用户授权某个数据库)
先设置该用户只有show database权限 grant select,insert,update,delete on redmine1.* tojira@"%" identif ...
- mysql 数据库授权(给某个用户授权某个数据库)
先设置该用户只有show database权限 grant select,insert,update,delete on redmine1.* to jira@"%" identi ...
- mysql授权某一列_mysql 数据库授权(给某个用户授权某个数据库)【转载】
先设置该用户只有show database权限 grant select,insert,update,delete on redmine1.* tojira@"%" identif ...
- mysql 移除权限_MySQL用户授权及删除权限
▼ CREATE DATABASE IF NOT EXISTS `wordpress`; GRANT ALL PRIVILEGES ON wordpress.* TO wordpress@localh ...
- mysql给用户数据库授权_mysql 数据库授权(给某个用户授权某个数据库)【转载】...
先设置该用户只有show database权限 grant select,insert,update,delete on redmine1.* tojira@"%" identif ...
最新文章
- 千千静听4.6.7版发布了
- ajax怎样发变量,使用jQuery Ajax发送多个变量
- 实用线性代数和凸优化 Convex Optimization
- iOS开发多线程篇—线程安全
- 查询添加条件_035 JAVA-MySQL 约束、DML操作(增改删)、事务处理、查询数据
- 怎样用python搭建简单的系统_如何用Python搭建一个简单的推荐系统?
- 在SharePoint2007中创建站点一:相关服务的启动
- 视觉slam十四讲ch6曲线拟合 代码注释(笔记版)
- STL之adjacent_difference
- 浮沉11年 | 一个互联网老兵的自白书
- 扩展 HashMap
- 一起写框架-控制反转(Ioc)概述(二)
- 最牛通达信短线超强波段主图指标公式 源码
- Windows下安装Ruby及配置镜像源
- EnableQ在线问卷调查引擎在学校教学评估中的作用
- ubuntu 降级linux内核,ubuntu16内核降级
- 计算机主机中的硬件组成部分,电脑的硬件组成部分及其作用各是什么
- gcc 中-O1 -O2 -O3 优化的原理
- Servlet学习记录2
- python替换excel指定内容_Python脚本操作Excel实现批量替换功能
热门文章
- 强悍的 Linux —— grep 与 egrep
- UNIX环境高级编程(三)—— 静态链接库与动态链接库
- C Tricks(九)—— 获取文件大小与申请数组空间
- 数据结构与算法的分析
- 机器学习实战 Tricks —— 训练数据均值标准差标准化测试样本
- Python 数据结构与算法 —— Kruskal 算法
- numpy.ndarray.flat/flatten 与 Spark 下的 flatMap
- Python基础 —— sys 模块
- 零基础学python大概要多久-怎么自学python,大概要多久?
- python编程入门第3版pdf-Python编程入门第3版PDF电子书免费下载