在不同数据库中,“给存储过程权限”的方式略有不同。下面按常见数据库分别说明,并给出示例。
GRANT EXECUTE ON PROCEDURE db_name.proc_name TO 'user'@'host';
GRANT EXECUTE ON db_name.* TO 'user'@'host';
GRANT CREATE ROUTINE ON db_name.* TO 'user'@'host';
GRANT ALTER ROUTINE ON db_name.* TO 'user'@'host';
注意:MySQL 中
EXECUTE是存储过程/函数权限,不是表权限。
GRANT EXECUTE ON dbo.proc_name TO [username];
GRANT EXECUTE ON SCHEMA::dbo TO [username];
REVOKE EXECUTE ON dbo.proc_name TO [username];
GRANT EXECUTE ON schema_name.proc_name TO user_name;
GRANT EXECUTE ON proc_name TO user_name;
REVOKE EXECUTE ON schema_name.proc_name FROM user_name;
GRANT EXECUTE ON PROCEDURE schema_name.proc_name(parameter_types)
TO user_name;
GRANT EXECUTE ON ALL PROCEDURES IN SCHEMA schema_name TO user_name;
ALTER DEFAULT PRIVILEGES IN SCHEMA schema_name
GRANT EXECUTE ON PROCEDURES TO user_name;
只给 EXECUTE 不等于能看定义
EXECUTE 只给执行权VIEW DEFINITION)存储过程内部访问表的权限
SQL SECURITY DEFINER / INVOKER最小权限原则
EXECUTE如果你告诉我:
我可以直接帮你写可复制执行的授权语句。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。