精华内容
下载资源
问答
  • ORACLE表赋权,存储过程赋权

    千次阅读 2018-07-04 15:29:28
    把一个表的查询,插入,修改,删除.....赋给另一个用户 ...把一个存储过程赋权给另一个用户 grant execute on 存储过程名字 to 用户名; 例: grant execute on PROC_VALIDATE_EXAMINER to EAST_MODEL

    把一个表的查询,插入,修改,删除.....赋给另一个用户

    grant select, insert, update, delete, references, alter, index on  表名  to 用户名

     

    grant select, insert, update, delete, references, alter, index on O_C_ZHSB_GRYHZH to EAST_MODEL

     

    把一个存储过程赋权给另一个用户

    grant execute on  存储过程名字  to 用户名;

    例:

    grant execute on PROC_VALIDATE_EXAMINER to EAST_MODEL


    展开全文
  • NULL 博文链接:https://daywbdb.iteye.com/blog/1418336
  • 实用的数据库赋权和同义词的存储过程,用于oracle,方便的批量对数据库中所有内容对多个帐号进行赋权操作,安全高效。适用于需要对数据库分角色权限的系统。
  • 遇到其他用户要调用本用户的存储过程,调用之前要登陆本用户,对存储过程进行赋权,具体使用grant:grant给表赋权: ...grant给存储过程赋权: grant execute on procedurename to user1; grant execute on 存储过程
    遇到其他用户要调用本用户的存储过程,调用之前要登陆本用户,对存储过程进行赋权,具体使用grant:
    
    1. grant给表赋权:
      grant select/update on table1 to user1;
      grant 权限 on 表 to 用户
    2. grant给存储过程赋权:
      grant execute on procedurename to user1;
      grant execute on 存储过程 to 用户

    创建存储过程调用另外的存储过程:

    create or replace procedurename(
        v_1 in varchar2;   --这里输入输出参数与要调的存储过程(procedurename2)一样
        v_2 in varchar2;
        o_1 out sys_refcursor;
        o_2 out varchar2;
    )
    as
    begin
    procedurename2(v_1,v_2,o_1,o_2);
    end;
    展开全文
  • Mysql赋权

    2019-05-20 10:43:00
    二、grant 数据库开发人员,创建表、索引、视图、存储过程、函数。。。等权限。 grant 创建、修改、删除 MySQL 数据表结构权限。 grant create on testdb.* to developer@'192.168.0.%' ; grant alter on testdb.* ...

    MySQL 赋予用户权限命令的简单格式可概括为:grant 权限 on 数据库对象 to 用户 (授权后记得刷新权限:flush privileges;)

    一、grant 普通数据用户,查询、插入、更新、删除 数据库中所有表数据的权利。
    grant select on testdb.* to common_user@'%'
    grant insert on testdb.* to common_user@'%'
    grant update on testdb.* to common_user@'%'
    grant delete on testdb.* to common_user@'%'

    或者,用一条 MySQL 命令来替代:
    grant select, insert, update, delete on testdb.* to common_user@'%'

    二、grant 数据库开发人员,创建表、索引、视图、存储过程、函数。。。等权限。
    grant 创建、修改、删除 MySQL 数据表结构权限。

    grant create on testdb.* to developer@'192.168.0.%' ;
    grant alter on testdb.* to developer@'192.168.0.%' ;
    grant drop on testdb.* to developer@'192.168.0.%' ;

    grant 操作 MySQL 外键权限。

    grant references on testdb.* to developer@'192.168.0.%' ;

    grant 操作 MySQL 临时表权限。

    grant create temporary tables on testdb.* to developer@'192.168.0.%' ;

    grant 操作 MySQL 索引权限。

    grant index on testdb.* to developer@'192.168.0.%' ;

    grant 操作 MySQL 视图、查看视图源代码 权限。

    grant create view on testdb.* to developer@'192.168.0.%' ;
    grant show view on testdb.* to developer@'192.168.0.%' ;

    grant 操作 MySQL 存储过程、函数 权限。

    grant create routine on testdb.* to developer@'192.168.0.%' ; -- now, can show procedure status
    grant alter routine on testdb.* to developer@'192.168.0.%' ; -- now, you can drop a procedure
    grant execute on testdb.* to developer@'192.168.0.%' ;
    三、grant 普通 DBA 管理某个 MySQL 数据库的权限。
    grant all privileges on testdb to dba@'localhost'
    其中,关键字 “privileges” 可以省略。

    四、grant 高级 DBA 管理 MySQL 中所有数据库的权限。
    grant all on *.* to dba@'localhost'


    五、MySQL grant 权限,分别可以作用在多个层次上。
    1. grant 作用在整个 MySQL 服务器上:

    grant select on *.* to dba@localhost ; -- dba 可以查询 MySQL 中所有数据库中的表。
    grant all on *.* to dba@localhost ; -- dba 可以管理 MySQL 中的所有数据库
    2. grant 作用在单个数据库上:

    grant select on testdb.* to dba@localhost ; -- dba 可以查询 testdb 中的表。

    3. grant 作用在单个数据表上:

    grant select, insert, update, delete on testdb.orders to dba@localhost ;

    4. grant 作用在表中的列上:

    grant select(id, se, rank) on testdb.apache_log to dba@localhost ;

    5. grant 作用在存储过程、函数上:

    grant execute on procedure testdb.pr_add to 'dba'@'localhost'
    grant execute on function testdb.fn_add to 'dba'@'localhost'
    六、查看 MySQL 用户权限
    查看当前用户(自己)权限:

    show grants;
    查看其他 MySQL 用户权限:

    show grants for dba@localhost;
    七、撤销已经赋予给 MySQL 用户权限的权限。
    revoke 跟 grant 的语法差不多,只需要把关键字 “to” 换成 “from” 即可:

    grant all on *.* to dba@localhost;
    revoke all on *.* from dba@localhost;
    八、MySQL grant、revoke 用户权限注意事项
    1. grant, revoke 用户权限后,该用户只有重新连接 MySQL 数据库,权限才能生效。

    2. 如果想让授权的用户,也可以将这些权限 grant 给其他用户,需要选项 “grant option“

    grant select on testdb.* to dba@localhost with grant option;

    转载于:https://www.cnblogs.com/selinaniur/p/10892803.html

    展开全文
  • 批量给存储过程赋权限的存储过程(第二版) 转载:http://blog.chinaunix.net/u/29134/showart_469805.html 在...避免原来的主键冲突,还有支持单个存储过程赋权。DELIMITER $$DROP PROCEDURE IF EXISTS `mysql`.`sp_
    批量给存储过程赋权限的存储过程(第二版)
    转载:http://blog.chinaunix.net/u/29134/showart_469805.html
     
    在我原来的基础上增加了些内容。避免原来的主键冲突,还有支持单个存储过程的赋权。


    DELIMITER $$

    DROP PROCEDURE IF EXISTS `mysql`.`sp_grant_privileges_on_routine`$$

    CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_grant_privileges_on_routine`(
     IN f_db varchar(255), IN f_username varchar(255),IN f_host varchar(255),
     IN f_routine_name varchar(255), IN f_privileges varchar(255))
    BEGIN
      -- Mod by david yeung 20080123.

      -- Grant privileges on routine.

      declare i int default 0;
      -- To change the definer.

      set @definer_field = concat(f_username,'@',f_host);
      -- To determinate whether the procedure 's name supply or not.

      if char_length(f_routine_name) = 0 then
        -- Delete all the privileges on specific user.

        set @stmt = concat('delete from mysql.procs_priv where db=''',f_db,'''');
        prepare s1 from @stmt;
        execute s1;
        deallocate prepare s1;
        set @stmt = '';
        -- Get the routine number from exact database.

        set @stmt = concat('select count(1) from mysql.proc where db = ''',f_db,''' into @cnt');
        prepare s1 from @stmt;
        execute s1;
        deallocate prepare s1;
        while i < @cnt do
          -- Get the routine name from exact database.

          set @stmt = concat('select `name` from mysql.proc where db = ''',f_db,''' and type = 2 limit ',i,',1 into @name');
          prepare s1 from @stmt;
          execute s1;
          deallocate prepare s1;
          set @stmt = '';
          -- Add new data to privilege table.

          set @stmt = concat('insert into mysql.procs_priv values (''',f_host,''',''',f_db,''',''',f_username,''',''',@name,''',2,''',user(),''',''',f_privileges,''',''',now(),''')');
          prepare s1 from @stmt;
          execute s1;
          deallocate prepare s1;
          set @stmt = '';
          set i = i + 1;
        end while;
        -- Change all the definer to the same user.

        set @stmt = concat('update mysql.proc set definer = ''',@definer_field,''' where db = ''',f_db,'''');
        prepare s1 from @stmt;
        execute s1;
        deallocate prepare s1;
      else
        -- Remove the old routine privilege.

        set @stmt = concat('delete from mysql.procs_priv where db = ''',f_db,''' and routine_name = ''',f_routine_name,'''');
        prepare s1 from @stmt;
        execute s1;
        deallocate prepare s1;
        -- To grant individual routine.

        set @stmt = concat('grant ',f_privileges,' on procedure ',f_db,'.',f_routine_name,' to ''',f_username,'''@''',f_host,'''');
        prepare s1 from @stmt;
        execute s1;
        deallocate prepare s1;
        set @stmt = '';
        -- Change all the definer to the same user.

        set @stmt = concat('update mysql.proc set definer = ''',@definer_field,''' where db = ''',f_db,''' and `name` = ''',f_routine_name,'''');
        prepare s1 from @stmt;
        execute s1;
        deallocate prepare s1;
      end if;
      -- Refresh privilege table.

      flush privileges;
    END$$

    DELIMITER ;

    调用方法

    mysql> call sp_grant_privileges_on_routine('test','test_user','%','','execute');
    Query OK, 0 rows affected (0.02 sec)

    mysql> show grants for test_user@'%';
    +---------------------------------------------------------------------------------------+
    | Grants for test_user@%                                                                |
    +---------------------------------------------------------------------------------------+
    | GRANT USAGE ON *.* TO 'test_user'@'%'                                                 |
    | GRANT EXECUTE ON PROCEDURE `test`.`sp_insert_partition_data` TO 'test_user'@'%'       |
    | GRANT EXECUTE ON PROCEDURE `test`.`sp_grant_privileges_on_routine` TO 'test_user'@'%' |
    | GRANT EXECUTE ON PROCEDURE `test`.`sp_insert_batch` TO 'test_user'@'%'                |
    | GRANT EXECUTE ON PROCEDURE `test`.`sp_test_sleep` TO 'test_user'@'%'                  |
    | GRANT EXECUTE ON PROCEDURE `test`.`sp_check_security` TO 'test_user'@'%'              |
    | GRANT EXECUTE ON PROCEDURE `test`.`sp_alter_engine` TO 'test_user'@'%'                |
    | GRANT EXECUTE ON PROCEDURE `test`.`sp_insert_temp` TO 'test_user'@'%'                 |
    +---------------------------------------------------------------------------------------+
    8 rows in set (0.00 sec)

    mysql> call sp_grant_privileges_on_routine('test','root','%','sp_test_sleep','execute');
    Query OK, 0 rows affected (0.02 sec)

    mysql> show grants for test_user@'%';
    +---------------------------------------------------------------------------------------+
    | Grants for test_user@%                                                                |
    +---------------------------------------------------------------------------------------+
    | GRANT USAGE ON *.* TO 'test_user'@'%'                                                 |
    | GRANT EXECUTE ON PROCEDURE `test`.`sp_insert_partition_data` TO 'test_user'@'%'       |
    | GRANT EXECUTE ON PROCEDURE `test`.`sp_grant_privileges_on_routine` TO 'test_user'@'%' |
    | GRANT EXECUTE ON PROCEDURE `test`.`sp_insert_batch` TO 'test_user'@'%'                |
    | GRANT EXECUTE ON PROCEDURE `test`.`sp_check_security` TO 'test_user'@'%'              |
    | GRANT EXECUTE ON PROCEDURE `test`.`sp_alter_engine` TO 'test_user'@'%'                |
    | GRANT EXECUTE ON PROCEDURE `test`.`sp_insert_temp` TO 'test_user'@'%'                 |
    +---------------------------------------------------------------------------------------+
    7 rows in set (0.01 sec)

    mysql> show grants for root@'%';
    +--------------------------------------------------------------------------------------------------------------+
    | Grants for root@%                                                                                            |
    +--------------------------------------------------------------------------------------------------------------+
    | GRANT EXECUTE ON PROCEDURE `test`.`sp_test_sleep` TO 'root'@'%'                                              |
    +--------------------------------------------------------------------------------------------------------------+
    2 rows in set (0.00 sec)
    展开全文
  • oracle 赋权

    2012-11-20 17:46:55
     create any procedure 为任意用户创建存储过程的权限  create any sequence 为任意用户创建序列的权限  create any snapshot 为任意用户创建快照的权限  create any synonym 为任意用户创建同义名的...
  • MySQL 8.0.18给数据库添加用户和赋权问题1. 首选使用root用户登录数据库mysql -uroot -p2. 使用mysql 数据库USE mysql;3. 为mysql创建用户:dev 密码为:dev12345CREATE USER dev IDENTIFIED BY 'dev12345';4. 查看...
  • oracle赋权操作

    千次阅读 多人点赞 2014-10-16 17:16:46
    首先登陆用户user1,然后执行下列语句,即可将user1的存储过程的调用权限赋给用户user2 grant all on p_test to user2; 2.oracle 有A B 两个用户 A用户想导出B用户里的表 但不能给A用户赋予DBA 的权限 conn /as ...
  • db2数据库用户赋权

    千次阅读 2017-09-07 11:17:17
    数据库用户赋权    DB2数据库权限分为实例级权限(SYSADM、SYSCTRL、SYSMAINT、SYSMON)和DB2数据库级权限(DBAMD、LOAD)。DB2中用户所拥有的权限主要考虑三个方面:实例级、数据库级、数据库操作级别,查看...
  • 1. 首选使用root用户登录数据库  mysql -uroot -p 2. 使用mysql 数据库 ...5. 给用户dev在数据库名为dev_db上赋EXECUTE(执行存储过程),INSERT,SELECT,UPDATE权限,@’%’表示从任意ip都可以访问到这个数据库 GRAN
  • 主要介绍了SQL Server存储过程中使用表值作为输入参数示例,使用表值参数,可以不必创建临时表或许多参数,即可向 Transact-SQL 语句或例程(如存储过程或函数)发送多行数据,这样可以省去很多自定义的代码,需要的朋友...
  • DB2存储过程中日志表建表语句: create table db2inst1.dim_proc_run_log ( proc_name varchar(200) , proc_para varchar(20) , step_no integer , step_desc varchar(100) , step_over_time timestamp , ...
  • oracle存储过程问题

    2010-02-25 23:30:00
    存储过程中,执行execute immediate 时,有时会报没有权限的错误, 这个时候要进行赋权处理如:grant create all table to username 赋权后就可以了
  • user@localhost identified by 'password' 授权语句:意思是把表 XXX select, insert, update, delete权限授给bm_user表 以sys身份登录,为system赋予select 和delete sys.fga_log$的权限,否则下边的存储过程添加会...
  • GBase 8s 存储过程

    千次阅读 2020-04-26 17:29:36
    存储过程(Stored Procedure)是一种在数据库中存储复杂程序,以便外部程序调用的一种数据库对象。 存储过程是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数...
  • 避免原来的主键冲突,还有支持单个存储过程赋权。DELIMITER $$DROP PROCEDURE IF EXISTS `mysql`.`sp_grant_privileges_on_routine`$$CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_grant_privileges_on_rou.....
  • 存储过程(Oracle)学习20170917

    千次阅读 2017-09-17 20:58:11
    一、知识点 1.使用procedure和function的原则是:若只需要返回1个值,则使用function,其他使用...3.调试存储过程需要赋权限:(1)以管理员登录:sqlplus / as sysdba show user (2)赋权:grant DEBUG CONNECT SESSIO
  • 存储过程授权给子用户

    万次阅读 2020-06-06 00:06:03
    --存储过程案例(清空表数据) --存储过程案例(清空表数据) CREATE OR REPLACE PACKAGE USER_A.PKG_TRA_TAB_OPERATION IS PROCEDURE P_TAB_TRUNCATE_A; -- 方法一 PROCEDURE P_TAB_TRUNCATE_B; -- 方法二 END ...
  • 关于赋权 grant

    2010-03-26 17:34:52
    一开始马上想到要给select on sys.dual权限给query用户,但仔细一查productmon.MonitorEntryPieContinuity是一个存储过程。和同事和了一下,应该是赋execute on productmon.MonitorEntryPieContinuity给query用户。 ...
  • oracle 恢复被覆盖的存储过程

    千次阅读 2016-07-19 10:11:11
    --很多时候,存储过程一不小心就被覆盖掉了。很焦急的我们,无手可入,不知道如何恢复,google,百度,问同事啊,都没有办法解决。 这里介绍一下恢复的过程,2个步骤就搞定。   --登录到sys用户下,创建临时表...
  • Oracle批量导出存储过程

    千次阅读 2013-09-13 13:28:55
    Oracle批量导出存储过程   法一: PL/SQL工具导出   法二: Sql代码 SET echo off; SET heading off; SET feedback off; spool C:\Documents and Settings\Administrator\桌面\proc.sql;   --1、用sys用户等陆...
  • oracle使用存储过程创建用户并授权(版本1)20181103 背景: DBA平时工作创建用户频率还是蛮高的,故写一个存储过程简化创建用户的步骤 代码如下:   /* 创建存储过程的用户:system 功能:通过传入用户名/密码/...
  • A的schema下新写了一个存储过程test_for_ddl,包里面select了新表TABLE1,如果B用户想使用这个存储过程,你需要赋哪些权呢?? 很多朋友可能会认为需要下面2个赋权: GRANT EXECUTE ON test_for_ddl TO B; ...
  • PLSQL Developer 分析存储过程

    千次阅读 2018-08-27 06:36:15
    最近应公司需要,需要编写ORACLE存储过程。本人新手,在完成存储过程的编写后,感觉需要对存储过程中各个语句的执行时间进行分析,以便 对整个存储过程进行优化。  由于用的是PLSQL Developer 客户端工具,而网上...
  • 存储过程之权限复制

    2018-01-30 11:52:15
    角色赋权 复制 v_from_res_id 权限到 v_to_res_id  * 功能描述 --%@COMMENT: 权限管理  * 参数 --%@PARAM:v_from_res_id  * 参数 --%@PARAM:v_to_res_id  * 参数 --%@PARAM:V_RETCODE 过程...
  • 网上单独关于MySQL用户权限或者存储过程的文章有不少,但是关于在存储过程中如何书写用户授权语句,尤其是批量授权的资料却很少。 为什么笔者会遇到在存储过程中书写批量用户授权语句的需求,是因为笔者在日常开发...
  • MySQL赋权与回收权限命令

    千次阅读 2015-09-05 16:52:58
    :影响用户运行存储过程的能力 EVENT:影响执行事件的能力(从MySQL5 .1 .6 开始) FILE:影响 SELECT INTO OUTFILE和 LOAD DATA INFILE的使用 GRANT OPTION :影响用户委派权限的能力 INDEX:影响 CREATE ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,304
精华内容 1,321
关键字:

存储过程赋权