mysql创建存储过程权限
用select...into语句
下面是mysql 5.0的帮助文档的:
这个SELECT语法把选定的列直接存储到变量。因此,只有单一的行可以被取回。
SELECT id,data INTO x,y FROM test.t1 LIMIT 1;
注意,用户变量名在MySQL 5.1中是对大小写不敏感的。请参阅9.3节,“用户变量”。
重要: SQL变量名不能和列名一样。如果SELECT ... INTO这样的SQL语句包含一个对列的参考,并包含一个与列相同名字的局部变量,MySQL当前把参考解释为一个变量的名字。例如,在下面的语句中,xname 被解释为到xname variable 的参考而不是到xname column的:
CREATE PROCEDURE sp1 (x VARCHAR(5))
BEGIN
DECLARE xname VARCHAR(5) DEFAULT 'bob';
DECLARE newname VARCHAR(5);
DECLARE xid INT;
SELECT xname,id INTO newname,xid
FROM table1 WHERE xname = xname;
SELECT newname;
END;
当这个程序被调用的时候,无论table.xname列的值是什么,变量newname将返回值‘bob’。
2. mysql创建存储过程示例
1
用mysql客户端登入
2
选择数据库
mysql>use
test
3
查询当前数据库有哪些存储过程
mysql>show
procere
status
where
db='test'
4
创建一个简单的存储过程
mysql>create
procere
hi()
select
'hello';
5
存储过程创建完毕,看怎么调用它
mysql>call
hi();
显示结果
mysql>
call
hi();
+-------+
|
hello
|
+-------+
|
hello
|
+-------+
1
row
in
set
(0.00
sec)
query
ok,
0
rows
affected
(0.01
sec)
6
一个简单的储存过程就成功了
3. mysql存储过程
MySQL存储过程创建的格式如下:
CREATE PROCEDURE 过程名 ([过程参数[,...]])[特性 ...] 过程体
举例代码如下:
CREATE PROCEDURE proc1(OUT s int) BEGIN SELECT COUNT(*) INTO s FROM user; END
存储过程根据需要可能会有输入、输出、输入输出参数,这里有一个输出参数s,类型是int型,如果有多个参数用","分割开。
过程体的开始与结束使用BEGIN与END进行标识。
注意:MySQL在5.0以前并不支持存储过程
4. MYSQL如果将修改存储过程的权限给别的用户
最佳答案语法是错的。
GRANT EXECUTE ON PROCEDURE 存储过程名称 to 用户名称;
前提是执行这条语句的用户是有这个存储过程的权限的。
5. mysql存储过程及流程控制
存储过程(Stored
Procere)是一组为了完成特定功能的SQL语句集功能是将常用或复杂的工作,预先用SQL语句写好并用一个指定名称存储起来,
以后需要数据库提供与已定义好的存储过程的功能相同的服务时,只需调用
call
存储过程名字,
即可自动完成命令。存储过程是由流控制和SQL语句书写的过程,这个过程经编译和优化后存储在数据库服务器中,可由应用程序通过一个调用来执行,而且允许用户声明变量
。同时,存储过程可以接收和输出参数、返回执行存储过程的状态值,也可以嵌套调用。
6. 如何修改mysql 存储过程权限
方法如下:
修改mysql 存储过程的definer
修改mysql.proc表 的definer字段
update mysql.proc set definer='root@%' where db='servant_591up'; UPDATE `mysql`.`proc` SET `definer`='root00@%' WHERE `db`='test' AND `name`='jjjj' AND `type`='PROCEDURE'; UPDATE `mysql`.`proc` SET `definer`='wtc_678869@%' WHERE `db`='servant_591up' AND `type`='PROCEDURE';
2.修改sql security
ALTER PROCEDURE www SQL SECURITY INVOKER ; ALTER PROCEDURE www SQL SECURITY DEFINER ;
(1)MySQL存储过程是通过指定SQL SECURITY子句指定执行存储过程的实际用户;
(2)如果SQL SECURITY子句指定为DEFINER,存储过程将使用存储过程的DEFINER执行存储过程,验证调用存储过程的用户是否具有存储过程的execute权限和DEFINER用户是否具有存储过程引用的相关对象的权限;
(3)如果SQL SECURITY子句指定为INVOKER,那么MySQL将使用当前调用存储过程的用户执行此过程,并验证用户是否具有存储过程的execute权限和存储过程引用的相关对象的权限;
(4)如果不显示的指定SQL SECURITY子句,MySQL默认将以DEFINER执行存储过程。
3.执行存储过程授权
GRANT EXECUTE ON test.* TO 'wtc'@'%'; GRANT CREATE ROUTINE,ALTER ROUTINE, SELECT,CREATE, INSERT, UPDATE, DELETE, EXECUTE ON test.* TO 'wtc'@'%' IDENTIFIED BY '111111'
CREATE ROUTINE : 创建存储过程的权限
ALTER ROUTINE : 修改存储过程的权限
4.删除用户
REVOKE all ON test.* FROM wtc@'%'
DELETE FROM user WHERE User='user_name' and Host='host_name';
FLUSH PRIVILEGES;
好文要顶关注我
7. mysql如何创建存储过程
1 用mysql客户端登入
2 选择数据库
mysql>use test
3 查询当前数据库有哪些存储过程
mysql>show procere status where Db='test'
4 创建一个简单的存储过程
mysql>create procere hi() select 'hello';
5 存储过程创建完毕,看怎么调用它
mysql>call hi();
显示结果 mysql> call hi();
+-------+
| hello |
+-------+
| hello |
+-------+
1 row in set (0.00 sec) Query OK, 0 rows affected (0.01 sec)
6 一个简单的储存过程就成功了
8. MSQ创建存储过程,初级MSQ大佬求助
1系统存储过程
以sp_开头,用来进行系统的各项设定.取得信息.相关管理工作。
2本地存储过程
用户创建的存储过程是由用户创建并完成某一特定功能的存储过程,事实上一般所说的存储过程就是指本地存储过程。
3临时存储过程
分为两种存储过程:
一是本地临时存储过程,以井字号(#)作为其名称的第一个字符,则该存储过程将成为一个存放在tempdb数据库中的本地临时存储过程,且只有创建它的用户才能执行它;
二是全局临时存储过程,以两个井字号(##)号开始,则该存储过程将成为一个存储在tempdb数据库中的全局临时存储过程,全局临时存储过程一旦创建,以后连接到服务器的任意用户都可以执行它,而且不需要特定的权限。
4远程存储过程
在SQL Server2005中,远程存储过程(Remote Stored Proceres)是位于远程服务器上的存储过程,通常可以使用分布式查询和EXECUTE命令执行一个远程存储过程。
5扩展存储过程
扩展存储过程(Extended Stored Proceres)是用户可以使用外部程序语言编写的存储过程,而且扩展存储过程的名称通常以xp_开头。
基本语法
创建存储过程
create procere sp_name
@[参数名] [类型],@[参数名] [类型]
as
begin
.........
end
以上格式还可以简写成:
create proc sp_name
@[参数名] [类型],@[参数名] [类型]
as
begin
.........
end
/*注:"sp_name"为需要创建的存储过程的名字,该名字不可以以阿拉伯数字开头*/
调用存储过程
1.基本语法:exec sp_name [参数名]
删除存储过程
1.基本语法:
drop procere sp_name
2.注意事项
(1)不能在一个存储过程中删除另一个存储过程,只能调用另一个存储过程
其他常用命令
1.show procere status
显示数据库中所有存储的存储过程基本信息,包括所属数据库,存储过程名称,创建时间等
2.show create procere sp_name
显示某一个mysql存储过程的详细信息
3、exec sp_helptext sp_name
显示你这个sp_name这个对象创建文本。
9. 如何用phpmyadmin设置mysql数据库用户的权限
首先打开phpMyadmin;
点击用户菜单;
在任意用户菜单上点击“编辑权限”;
修改密码点击执行就OK了
权限意思可以对照下面翻译:
数据:
SELECT:允许读取数据。
INSERT:允许插入和替换数据。
UPDATA:允许更改数据。
DELETE:允许删除数据。
FILE:允许从文件中导入数据以及将数据导出至文件。
结构:
CREATE:允许创建新数据库和表。
ALTER:允许修改现有表的结构。
INDEX:允许创建和删除索引。
DROP:允许删除数据库和表。
CREATE TEMPORARY TABLES:允许创建暂时表。
CREATE VIEW:允许创建新的意见。
SHOW VIEW:显示创建的看法。
CREATE ROUTINE:允许创建存储过程。
ALTER ROUTINE:允许改变和下降存储过程。
EXECUTE:允许许执行存储过程。
管理:
GRANT:允许添加用户和权限,而不允许重新载入权限表。
SUPER:允许在达到最大允许数目时仍进行连接。
PROCESS:允许查看进程列表中的完整查询。
RELOAD:允许重新载入服务器设置并刷新服务器的缓存。
SHUTDOWN:允许关闭服务器。
SHOW DATABASES:允许访问完整的数据库列表。
LOCK TABLES:允许锁住当前线索的表。
REFERENCES:在此版本的 MySQL 中无效。
REPLICATION CLIENT:用户有权询问附属者/控制者在哪里。
REPLICATION SLAVE:回复附属者所需。
CREATE USER:允许创建,下降和重新命名的用户帐户。