sql-server - 使用CTE运行存储过程的安全性

sql-server - 使用CTE运行存储过程的安全性,第1张

我有一个存储过程android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" android:inputType="text" ,它使用CTE并返回它。

MyStoredProcedure

我对安全性有一个相当固定的要求。有一个固定用户create procedure MyStoredProcedure as WITH mytemptable(foo) AS ( SELECT bar FROM mytable ) SELECT foo FROM mytemptable 我可以授予MyUser个角色,并且我已授予MyRole MyRole执行权限。

但后来我收到了错误:

  

在数据库' MyDatabase'。

中拒绝了CREATE TABLE权限

问题:

  1. 我是否正确地认为这是因为CTE创建了一个表?
  2. 如何尽可能少地访问MyRole以创建CTE,但不能改变一切?
  3. 注意:

    我无法搜索答案,因此请随时编辑或发布正确的字词,以帮助搜索人员获得更多帮助。

    最佳答案:

    1 个答案:

    答案 0 :(得分:0)

    我不知道这是否是一个有用的答案,但我忽略了一个

    SELECT * INTO MyTable2
    

    由于MyTable2始终存在,我不知道可能会生成一个创建

    本文经用户投稿或网站收集转载,如有侵权请联系本站。

发表评论

0条回复