sql-server – 如何在SQL Server 2008中分配整个Active Directory组安全访问?

我想在我的内部应用程序中使用集成安全性,这些应用程序都在域上.不幸的是,我从来没有能够让这个工作得很好.我想在sql Server中为整个Exchange(Active Directory)组分配一个角色,以便对某些表进行读/写访问.这样,每当有人被雇用时我都不必创建一个操作符,或者每当有人被解雇时都会删除一个操作符.这可能吗?我会采取什么步骤来做这件事?

解决方法

>将AD组设置为登录名.并且“登录”表示服务器级登录而不是用户/登录的AD概念.在sql Server中,这是服务器级主体
>创建一个映射用户.您不应该直接在表上允许用户.而“用户”是指数据库用户而不是用户的AD概念:在sql Server中,这是一个数据库级别的主体”
>将用户添加到角色(也是“数据库级别主体”)
>对表上角色的GRANT权限(表或proc等是“安全”)

示例脚本

USE master;
GO
CREATE LOGIN [MYDOMAIN\APPLICATION SUPPORT] FROM WINDOWS;
GO
USE mydb;
GO
CREATE USER [MYDOMAIN\APPLICATION SUPPORT] FROM LOGIN [MYDOMAIN\APPLICATION SUPPORT];
GO
CREATE ROLE rSupport;
GO
EXEC sp_addrolemember 'rSupport','MYDOMAIN\APPLICATION SUPPORT';
GO
GRANT SELECT,INSERT,UPDATE,etc ON Mytable TO rSupport;
GO

sql Server 2012开始,不推荐使用sp_addrolemember,而应使用ALTER ROLE.

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...