用户和范围 -
我的问题陈述 -
我编写了一个自动化程序,它必须删除称为备份的模式表,其中表由 write_user 创建。
现在,对于删除表,我必须使用 backup_pruner 用户,这就是问题所在。由于 write_user 在这里创建表,它是备份中所有表的所有者,只有所有者/超级用户可以删除表。
如何从这里进行?
回答为什么要使用单独的用户来删除表的问题 -
如果使用不当/任何角落情况,将表的可访问性作为 DROP 收紧,那么对于其他表来说也是灾难性的。
考虑使用创建的存储过程SECURITY DEFINER
来删除表。以这种方式创建的 SP 以创建者的权限运行。
您可以定义一个允许删除的表名列表,SP 在采取行动之前会检查这些表名。
我在 GitHub 上创建了这种方法的示例: sp_controlled_access
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句