gpt4 book ai didi

mysql函数定义器安全

转载 作者:行者123 更新时间:2023-11-30 21:46:04 27 4
gpt4 key购买 nike

我对 MySQL 中的访问控制/最佳实践有疑问。我为网站设置了一个数据库。该数据库保存用户登录信息和一般客户/产品信息。我已将信息分为安全信息和不安全信息,并为它们创建了 2 个模式。模式 A 包含非安全信息,例如客户名称、购物车、产品名称、价格等。模式 B 包含安全信息,例如 uid、加密密码、salt。我有一个 weblogin 用户,服务器端脚本使用该用户访问数据库并将其权限限制为模式 A。然后我有一组功能/过程来注册/验证/更新密码,以便 weblogin 用户可以执行这些在无法访问模式 B 中的信息的情况下运行。

所以,我的问题有两个A:在模式 A 或 B 中存储过程/函数在安全性方面有什么不同吗? Weblogin 没有删除/创建访问权限,因此理论上不应该能够修改它们来做任何恶意的事情。我只是想知道当他们访问 B 中的数据时将它们放在 A 中,或者将它们放在 B 中但必须授予对它们的 EXECUTE 权限以进行 weblogin 时,是否存在任何问题。 AKA 哪个更安全,还是我悬而未决?

B:对于 proc/func 中定义的用户,root 是否可接受?
例如:CREATE DEFINER=root@localhostPROCEDUREvalidate_user``或者我应该创建一个单独的用户,并为定义者授予访问该数据的权限?

我正在寻找任何知道这些权限如何工作的特殊性的人的答案。看起来好像它们之间没有区别,但我知道事情并不总是看起来的那样。我仍在学习网络安全,并尽可能地尝试应用最佳实践。提前致谢!

最佳答案

The DEFINER clause determines the security context to be used when checking access privileges .

    CREATE DEFINER=root@localhost PROCEDURE procedureName

will set the definer to be the current user. You can write a stored procedure/ routines without using "DEFINER". You may find in detail at:
http://kedar.nitty-witty.com/blog/access-control-in-mysql-stored-routines-by-example-definer-invoker-sql-security

关于mysql函数定义器安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49440098/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com