【问题标题】:Mysql function or procedure to check grants用于检查授权的 Mysql 函数或过程
【发布时间】:2012-11-20 13:55:53
【问题描述】:

用户应该只执行函数和过程。出于安全原因,我将EXECUTE 授予该用户并撤销同一用户的其他权限。

如何检查此用户是否只有EXECUTE 存储函数的权限?

【问题讨论】:

  • 我想检查存储函数中的授权。 CREATE FUNCTION get_max_price() 返回 int(11) unsigned begin declare l int(11) unsigned;如果“检查用户刚刚执行了授权”,则从汽车中选择 max(price)+1 into l;返回 l;万一;返回0;结尾;我可以打电话给表演补助金。但是如何检查存储函数中的输出呢?
  • 您可以使用声明处理程序定义异常。如果用户没有特定操作的权限,它将抛出错误,该错误将由定义的异常处理程序处理。 dev.mysql.com/doc/refman/5.0/en/declare-handler.html

标签: mysql privilege


【解决方案1】:
SHOW GRANTS FOR '<user>'@'<host>'

显示用户的授权。您可以检查用户的授权。

SELECT * FROM  mysql.procs_priv WHERE Proc_priv='Execute' AND Routine_type='PROCEDURE' AND Routine_name='<routine_name>' AND User='<user>' Db='<db_name>' AND Host='<host>';

Db 和 Host 可能不是必需的

【讨论】:

  • 我不想获得资助。我想检查存储函数中的授权。
  • 好的。我现在检查它。执行“SELECT * FROM information_schema.schema_privileges”需要什么权限?只是“使用”吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-07-24
  • 2017-05-24
  • 2016-03-28
  • 1970-01-01
  • 1970-01-01
  • 2014-05-20
  • 2018-03-06
相关资源
最近更新 更多