我有一个数据库,并根据用户我想他们使用存储过程来看到不同的东西。我不希望他们能够像select一样执行直接的SQL命令。这可能吗?我可以将SQL用户限制为仅存储过程吗?
回答
在过去,我不得不允许访问一些程序,我会给登录公共权利和数据库映射。这将让他们登录,但不做任何事情。然后我给每个存储过程选择权。我很确定我不必做任何事情。
如果你有大量的存储过程,那么本文将帮助你创建这个特定角色/模式。
http://www.patrickkeisler.com/2012/10/grant-execute-permission-on-all-stored.html
我有从其他来源的反馈,SQL注入可能与此解决方案的问题。我可以避免这个问题吗? –
这是关于执行权。与sql注入无关。这个话题在很多其他地方都有详细讨论,并且关于你如何开发你的存储过程,而不是你如何赋予它们执行权限。 –
你需要从所有组中删除该用户就用GRANT你希望他们有存储过程。
-- Syntax for SQL Server and Azure SQL Database
-- Simplified syntax for GRANT
GRANT { ALL [ PRIVILEGES ] }
| permission [ (column [ ,...n ]) ] [ ,...n ]
[ ON [ class :: ] securable ] TO principal [ ,...n ]
[ WITH GRANT OPTION ] [ AS principal ]
他为什么要将他们从“群体”中删除?他可能应该创建一个特定的**角色**。 –
我发现这是删除所有权利的最快方法。从其他来源,SQL注入也许不是整齐,虽然 –
我已经得到的反馈可能是该解决方案的问题。我可以避免这个问题吗? –
- 1. SQL Server仅将用户限制到选定的存储过程
- 2. 我可以将Google方向API仅限制到iOS应用吗?
- 3. 如何将sql trace限制为单个存储过程?
- 4. 我可以在IntelliJ IDEA中编辑MS SQL存储过程吗?
- 5. 我们可以从另一个存储过程调用存储过程吗?
- 6. 我可以只将日期选择器限制为仅限3天吗?
- 7. 我可以将列表传递给存储过程吗?
- 8. 我可以通过它占用的内存量限制HashMap吗?
- 9. 在SQL Server中可以递归调用存储过程吗?
- 10. Google的地理编码限制 - 我可以存储结果吗?
- 11. 我可以使用休眠条件调用存储过程吗?
- 12. MySQL存储过程:我可以直接用光标更新吗?
- 13. 我们可以从函数调用存储过程吗?
- 14. 我可以使用Azure存储地理复制作为源吗?
- 15. 我可以使用CSP将请求限制为https:AND'self'吗?
- 16. 是否可以将API限制为仅限一个Web界面/应用程序?
- 17. 限制最终用户使用存储过程插入数据
- 18. 我们可以使用System.Data.OracleClient将List <>发送到Oracle存储过程吗?
- 19. SQL用户权限 - 执行存储过程
- 20. 我需要将参数清理到SQL存储过程吗?
- 21. 我可以将git存储库复制到Windows吗?
- 22. 任何人都可以加快我的MySQL存储过程吗?
- 23. 我可以搜索存储过程结果吗?
- 24. 我可以在MS Access 2010中创建存储过程吗?
- 25. 我可以从存储过程返回一个varchar(max)吗?
- 26. 我们可以在SQL Server 2008的计算列中编写存储过程吗?
- 27. 我可以在SQL存储过程中分配一个变量吗?
- 28. SQL Server:我可以在更改存储过程时设置触发器吗?
- 29. 我可以从MS SQL中的事务中排除存储过程吗?
- 30. 我可以从SQL Server存储过程中检索分层数据结构吗?
是的,这是可能的。只能授予程序权限。 – jarlh
是的,只授予您希望他们使用的程序的执行权限。 –
之类的东西的权限等都是**高度依赖**在其RDBMS这是出于。请添加一个标签来指定您是使用'mysql','postgresql','sql-server','oracle'还是'db2' - 或者其他的东西。已添加标签 –