无论用navicat还是命令行show create procedure 都不能查看到存储过程的定义语句。检查权限,对数据库已有
SELECT, UPDATE, CREATE TEMPORARY TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE这些权限,
其中上面最后两个是关于stored procedure,function,trigger的。
mysql> select version();
+------------+
| version() |
+------------+
| 5.1.52-log |
+------------+
1 row in set (0.04 sec)
然后找到http://stackoverflow.com/questions/1084268/i-cant-see-sql-queries-in-mysql-stored-procedure
,
提示要有mysql.proc的Select权限,进而查询自己的权限列表: show grants fro 'zzz'@'%';
在全局的权限中,仅有如下: GRANT CREATE ROUTINE, ALTER ROUTINE ON *.* TO 'zzz'@'%' IDENTIFIED BY PASSWORD '*xxxxxxxxxxxxxxx' WITH MAX_USER_CONNECTIONS 6 .
最后,同事赋予了全局的Select权限就解决问题了。
最后记录一下mysql权限的五个级别:
- Global Level
- Database Level
- Table Level
- Column Level
- Routine Level
其中,Global Level授予的权限会覆盖其他所有级别的相同权限设置。
分享到:
相关推荐
创建好表和数据后,可以直接调用存储过程并查看结果。例如: ```sql CALL PRO1(10); SELECT * FROM COM_T2; ``` 这会调用`PRO1`存储过程,传入参数10,然后查询`COM_T2`表以验证结果。同样,可以为其他存储过程如`...
当遇到存储过程被锁定的情况时,通常可以通过查询`dba_ddl_locks`视图来查找锁定的详细信息。例如,要检查名为`prc_exec_day`的存储过程是否被锁定,可以运行以下SQL查询: ```sql SELECT * FROM dba_ddl_locks ...
### DB2look 导出存储过程脚本 在数据库管理领域,DB2 是 IBM 开发的一款关系型数据库管理系统,广泛应用于各种规模的企业级环境中。为了更好地管理和维护数据库中的对象(如存储过程、触发器等),DB2 提供了一...
在本篇文章中,我们将详细介绍如何在Oracle中查看存储过程。 1. **SQL*Plus**: SQL*Plus是Oracle提供的一种命令行工具,它可以用来执行SQL查询和PL/SQL块,包括查看存储过程。要查看所有的存储过程,可以使用以下...
1. 创建存储过程:首先,我们需要创建一个存储过程,例如使用 `create or replace procedure` 语句。 2. 编写存储过程:然后,我们需要编写存储过程的代码,例如使用 PL/SQL 语言。 3. 编译存储过程:最后,我们需要...
在实际应用中,你可以创建存储过程来封装复杂的查询,实现参数化查询,避免SQL注入攻击,以及简化数据库维护任务。理解存储过程的编写、调用和管理,是成为熟练的SQL Server开发者的关键步骤。 触发器是另一种...
### Oracle 查看表、存储过程、触发器、函数等对象定义语句的方法 在Oracle数据库管理与维护过程中,经常会遇到需要查看某个表、存储过程、触发器或函数等数据库对象的定义语句的情况。这对于理解现有数据库结构、...
oracle 获取用户ddl脚本,可获取用户ddl,在sqlplus 工具中打开
**格式与创建存储过程** 创建存储过程的语法如下: ```sql CREATE PROCEDURE [所有者.]存储过程名[;程序编号] [(参数#1,...参数#1024)] [WITH{RECOMPILE | ENCRYPTION | RECOMPILE, ENCRYPTION}] [FOR REPLICATION] ...
- **数据导入限制**:存储过程不能执行`LOAD DATA INFILE`语句。 - **递归调用**:存储过程和函数中可以递归地调用其他的过程或函数。 #### 六、存储过程与函数的维护 1. **删除存储过程/函数**: ```sql DROP ...
尽管其功能相对简单,但仍然支持创建存储过程,因此这个脚本可能同样包含存储过程来生成日期维度表。 创建日期维度表的存储过程通常会涉及以下步骤: - 定义表结构:确定日期维度表需要包含哪些日期属性,并创建...
此示例创建了一个名为`p`的简单存储过程,该过程实际上什么也不做。 #### 三、为何使用存储过程 存储过程提供了一系列好处: 1. **代码复用性**:存储过程可以被多次调用,减少重复代码。 2. **性能优化**:存储...
存储过程体可以包含各种类型的SQL语句和控制流语句,例如DML、DDL、条件语句、循环语句等。 **控制流语句**: - `IF...THEN...ELSE`:条件判断。 - `WHILE...DO`:循环结构。 - `DECLARE`:声明变量。 - `CASE`:...
本文将探讨如何使用Python来实现PostgreSQL的分区表DDL(数据定义语言)的自动化创建。 首先,让我们了解分区表的基本概念。分区表通过将数据根据预定义的规则分布到不同的子表中,提高了查询效率,尤其对于大数据...
在探讨“sybase 12.5不能运行DDL文件”的问题之前,首先我们需要理解DDL(Data Definition Language)是什么。DDL是SQL语言的一部分,主要用于定义和修改数据库结构,如创建、修改或删除表、视图、索引等对象。在...
MySQL提供了新的SQL语句用于创建和管理存储过程,例如`CREATE PROCEDURE`和`DROP PROCEDURE`,这些语句扩展了MySQL的功能。 #### 7. 作用域 存储过程内部定义的变量和对象,其作用域限定在存储过程内。存储过程执行...
Access的DDL语句还可能涉及索引、触发器、存储过程等复杂元素。虽然Access本身对这些高级功能的支持有限,但通过导出DDL,你可以将Access的表结构映射到支持这些特性的更强大的数据库系统中。 在处理大量数据或需要...
在数据库管理领域,存储过程和触发器是两个重要的概念,它们在数据操作和业务逻辑实现中扮演着不可或缺的角色。下面将详细阐述这两个概念及其在实际应用中的重要性。 首先,我们来了解一下存储过程(Stored ...
除了映射文件,还可以在运行时动态创建SQLQuery对象来执行存储过程,这适用于那些不需要持久化到实体类的结果。例如: ```csharp string sql = "EXEC usp_CustomProcedure :param1"; SQLQuery query = session....
使用 `dbms_ddl` 包的优点在于灵活性,可以动态处理和创建加密的存储过程,但同样,一旦加密,源代码无法直接查看。 加密存储过程是保护知识产权和商业机密的有效方式,但需要注意的是,加密并不会阻止拥有足够...