4 security sql-server stored-procedures sql-server-2014
作为应用程序数据库设计规范的一部分,我们被要求阻止执行一组直接从 SSMS/osql/sqlcmd 等触发的存储过程;也就是说,它们必须只被允许在应用程序本身内运行。
当我们的团队质疑这是否可行时,我们看到了一个演示,该演示将查询限制在特定系统(实际上它让查询运行,但记录到运行它的表中)。然而,这样做的过程是加密的,所以我们无法知道它是如何完成的。
我们如何做到这一点?
获取此信息的多种方法:
SELECT APP_NAME();
SELECT PROGRAM_NAME();
SELECT [program_name]
FROM sys.dm_exec_sessions
WHERE session_id = @@SPID;
Run Code Online (Sandbox Code Playgroud)
请记住,它可以在连接字符串或 Management Studio 的连接属性中被欺骗。如果我使用以下参数进行连接,则上述所有三个都将返回foobar
:
归档时间: |
|
查看次数: |
7285 次 |
最近记录: |