“dbo”用户不应用于正常服务操作

Man*_*dan 8 sql sql-server mssql-jdbc azure-sql-database

当我扫描数据库时,它显示诸如 VA1143 'dbo' 用户不应用于漏洞评估扫描中的正常服务操作之类的结果之一

他们建议“创建具有低权限的用户来访问数据库以及存储在其中的任何数据,并具有适当的权限集。”

我已经浏览了所有表格的相同内容,但还无法得到正确的建议。您能否提出您的想法或我必须在哪里创建用户并授予权限。因为我们的数据库中只有一种模式结构。

Leo*_*Yue 5

关于“创建具有低权限的用户来访问数据库以及具有适当权限集的存储在其中的任何数据。”,您应该了解的第一件事是数据库级角色

创建低权限用户意味着该用户没有alterdatabase权限。

当我们为数据库创建用户时,我们需要为其授予角色,以控制其对数据库的权限。

例如,下面的代码为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';
Run Code Online (Sandbox Code Playgroud)

更多详情请参考:

  1. 使用登录名和用户帐户授权经过身份验证的用户对 SQL 数据库和 Azure Synapse Analytics 进行数据库访问

希望这可以帮助。