2

大家好,我遇到了一个让我难过的问题。

我在 SQL Server Express 中建立了一个数据库,但遇到了一个奇怪的权限问题。该数据库位于我的开发机器上,具有域用户:DOMAIN\albertp。我的开发数据库服务器设置为“SQL Server 和 Windows 身份验证”模式。当我使用 Windows 身份验证登录时,我可以毫无问题地编辑和查询我的数据库。

但是,当我登录到任何使用 SQL Server 身份验证(包括 sa)的用户时,我会在对我的数据库运行查询时收到此消息。

SELECT * FROM [Testing].[dbo].[AuditingReport]

我得到:

Msg 18456, Level 14, State 1, Line 1
Login failed for user 'auditor'.

我以“审核员”身份从 SQL Server Management Studio 登录到服务器,并且在错误日志中没有看到有关登录失败的任何内容。

我已经跑过:

Use Testing;
Grant All to auditor;
Go

我仍然得到同样的错误。我必须为数据库设置哪些权限才能供我个人域登录之外的其他人使用?还是我看错了问题?

我的最终目标是让数据库可以从一组 PHP 页面访问,使用公共登录(因此是“审计员”)或特定于一组个人用户的登录。

4

1 回答 1

1

GRANT ALL没有执行您认为的操作。

我建议出于测试目的考虑使用数据库角色来管理用户的权限。

这是可用的数据库级角色的列表

您可以使用系统存储过程sp_AddRoleMember将现有用户添加到数据库级角色。例如,以下内容将为您的用户提供对给定数据库中所有对象的读取权限。:

EXEC sp_addrolemember 'db_datareader','auditor'

理想情况下,您可能需要考虑定义自己的数据库角色,以便管理数据库用户的权限。

于 2011-01-03T21:22:30.027 回答