当我扫描我的数据库时,它显示了一个结果,如VA1143'dbo'用户不应该被用于正常的服务操作,在我的数据库中。脆弱性评估扫描
他们建议 "创建具有低权限的用户,以适当的权限集访问数据库和存储在其中的任何数据"。
我已经浏览了关于相同的所有表格,但还不能得到正确的建议。请你提出你的想法,或者我必须在哪里创建用户并授予权限。由于我们的DB中只有一个模式结构。
关于 "创建具有低权限的用户,以适当的权限设置来访问数据库和存储在其中的任何数据。",首先你应该知道的就是 数据库级角色.
创建低权限的用户是指使用不具有改变数据库的权限。
当我们为数据库创建用户时,我们需要授予它角色来控制它对数据库的权限。
例如,下面是为SQL数据库创建一个只读用户的代码。
--Create login in master DB
USE master
CREATE LOGIN reader WITH PASSWORD = '<enterStrongPasswordHere>';
--create user in user DB
USE Mydatabase
CREATE USER reader FOR LOGIN reader;
GO
--set the user reader as readonly user
EXEC sp_addrolemember 'db_datareader', 'reader';
更多细节,请参考:
希望能帮到你。
在设计和构建数据库时,安全的主要机制之一必须是"最低权利人". 这意味着你只给予绝对必要的权限。任何应用程序都不应该需要成为数据库所有者才能运行。这个角色应该高度限制在只有管理类型。相反,你为应用程序创建一个更有限的角色。它可以包括对每一张表、所有程序的访问,但它不能做诸如,放弃数据库的事情。
这是对你的系统进行深度防御的第一步,以便正确、恰当地保护它的安全。它可以帮助解决从简单的访问到SQL注入的所有级别的安全问题。这就是为什么它被列为漏洞评估的一部分。这是一个真正的漏洞。