gpt4 book ai didi

SQL Server 安全 : Allow table update from application only

转载 作者:行者123 更新时间:2023-12-04 20:04:35 24 4
gpt4 key购买 nike

我们有一个数据库,所有应用程序用户都可以使用 Windows 身份验证访问该数据库。我希望仅通过应用程序用户界面而不是直接登录到 SQL Server Management Studio 来更新一个表。

我研究过 SQL Server 安全性,但它只是说,如果用户有权访问数据库对象,则允许通过任何界面或管理工作室访问。我想知道这种奇怪的情况是否会有一些解决方案。

感谢您的帮助!

最佳答案

在您的表上创建 Trigger 以防止从 SSMS 更新。

并通过使用系统函数来区分应用程序名称:

 APP_NAME() 

示例:

--Create Test table
Create table test (id int , name varchar (20))
go
--insert dummy data
insert into Test values (1, 'aaaa'), (2,'bbbb')
go

-- create our trigger for preventing updating via SSMS
CREATE TRIGGER trgPreventUpdateTestTableViaSSMS
ON test
FOR UPDATE AS
BEGIN
IF APP_NAME() = 'Microsoft SQL Server Management Studio - Query'
begin
RAISERROR('Cannot update test table via using SSMS',16,1)
rollback
end
END
GO

-- try update
update Test set name = 'cccc' where id = 2

结果:

enter image description here

关于SQL Server 安全 : Allow table update from application only,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40169101/

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