Windows身份验证和Windows用户权限

3
当我们在SQL Server Management Studio中使用Windows身份验证时,用于登录的用户帐户类型是否会影响用户授权?
我使用Windows身份验证登录到SQL管理工具,但无法更改sa密码和将身份验证模式更改为SQL和Windows。我遇到了与权限相关的错误:
对于身份验证模式:
“拒绝对对象“xp_instance_regwrite”的执行权限,数据库“mssqlsystemresource”,架构“sys”。”
对于sa密码更改:
“无法更改登录名“sa”,因为它不存在或您没有权限。”
下面的图像显示了Windows用户的权限。 enter image description here 以下是权限。

enter image description here


我以管理员身份运行了SQL管理工具,但这也没有帮助。 - Rudra
你登录时使用哪个用户?能否分享它的权限?(请检查登录和数据库用户) - Alexei - check Codidact
我已编辑问题以显示权限,SqlServer是全新安装的,只有系统数据库,在创建任何新数据库之前,我希望将sa密码和身份验证模式更改为混合模式。 - Rudra
更相关的是显示您登录时使用的用户(您的Windows用户)的权限。 - Alexei - check Codidact
2个回答

0

按照以下步骤解决问题:

1)打开配置管理器

2)在左侧单击 SQL Server 服务

3)在右侧选择 Sql 实例(即 sql server(SQL EXPRESS))

4)右键单击 -> 单击属性

5)单击启动参数选项卡

6)输入 -m 并单击添加

7)从配置管理器重新启动服务

8)打开管理工具并使用 Windows 身份验证登录,现在您处于管理员角色。

9)更改 sa 密码和身份验证模式。

10)从启动参数选项卡中删除 -m

11)打开管理工具并使用 sa 登录详细信息登录。


在第二步之后,右侧没有列出任何内容。(尽管我已经运行了SQL服务器)。 - Steve Smith

0

这个问题是一个 GRANT Permission 权限问题。

// 直接授权用户访问该过程

Grant Execute ON [sys].[xp_instance_regread] TO [DOMAIN\USER];

//to check and verify that  the user has the privilege granted to him

EXECUTE AS USER = ‘DOMAIN\USER’;Select * from fn_my_permissions(‘xp_instance_regread’,’Object’)

Go

或者

USE DatabaseName;
SELECT * FROM fn_my_permissions (NULL, 'DATABASE');
GO

参考资料


出现以下错误:“无法向 sa、dbo、实体所有者、information_schema、sys 或自己授予、拒绝或撤销权限。” - Rudra
如果登录是db_owner角色的成员(这与dbo即数据库所有者不同),仍然可能被拒绝访问某些对象。 - Genish Parvadia
只有系统数据库。当我在主数据库上运行 SELECT * FROM fn_my_permissions (NULL, 'DATABASE'); 时,它返回空结果集。 - Rudra

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接