2008-05-28
MySQL存储程序权限控制
关键字: mysql 存储程序 权限
MySQL存储程序权限控制
MySQL5.0引入了一些管理存储程序的权限:
给用户赋予权限:
存储程序的执行安全模式:
存储程序里封装访问权限的例子:
MySQL5.0引入了一些管理存储程序的权限:
CREATE ROUTINE: 允许用户创建新的存储程序 ALTER ROUTINE: 允许用户修改security mode/SQL mode/comment EXECUTE: 允许用户只需存储程序
给用户赋予权限:
GRANT CREATE ROUTINE ON mydatabase.* TO sp_creator; GRANT ALTER ROUTINE ON mydatabase.* TO sp_creator; GRANT EXECUTE ON mydatabase.* TO sp_creator; GRANT EXECUTE ON PROCEDURE mydatabase.test1 TO sp_creator;
存储程序的执行安全模式:
SQL SECURITY DEFINER: 默认模式,存储程序的定义者才能执行 SQL SECURITY INVOKER: 调用者都可以执行,但是权限细粒度的控制转交到存储程序里的SQL语句的执行权限
存储程序里封装访问权限的例子:
CREATE PROCEDURE sp_employee_list(in_department_id DECIMAL(8,0)
SQL SECURITY DEFINER READS SQL DATA
BEGIN
DECLARE l_user_name VARCHAR(30);
DECLARE l_not_found INT DEFAULT 0;
DECLARE l_department_name VARCHAR(30);
DECLARE l_manager_id INT;
DECLARE user_csr CURSOR FOR
SELECT d.department_name, e.manager_id
FROM departments d JOIN employees e USING(department_id)
WHERE db_user=l_user_name;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET l_not_foun=1;
/* Strip out the host from the user name */
SELECT SUBSTR(USER(),1,INSTR(USER(), '@')-1)
INTO l_user_name;
OPEN user_csr;
FETCH user_csr INTO l_department_name, l_manager_id;
CLOSE user_csr;
IF l_department_name='PAYROLL' OR l_manager_id IN (0, 1) THEN
SELECT surname, firstname, salary
FROM employees
WHERE department_id=in_department_id
ORDER BY employee_id;
ELSE
/* Not authorized to see salary */
SELECT surname, firstname, 'XXXXXXXX' AS salary
FROM employees
WHERE department_id=in_department_id
ORDER BY employee_id;
END IF;
END;
发表评论
- 浏览: 681901 次
- 性别:

- 来自: BJ

- 详细资料
搜索本博客
我的相册
screenshot
共 1 张
共 1 张
最近加入圈子
最新评论
-
Mnesia用户手册:三,构建 ...
要想创建disc_copies和disc_only_copies类型的表有两个前 ...
-- by hideto -
翻译www.djangobook.com之 ...
有个问题问一下: 我先配置了一个urlpatterns是这样的: r'^myd ...
-- by lyhapple -
Why OO sucks
gigix 写道lyl0035 写道为啥就没人想想,其实在面向对象的代码中也流露 ...
-- by hurd -
Why OO sucks
貌似又回到当年java vs c的年代。两种方式,不管是OO还是FP,仅是人处理 ...
-- by python -
大家可以抛弃Java踹死Djan ...
to phoenixup:1,你还别说,你举的什么Struts,Tapestry ...
-- by hideto






评论排行榜