Skip to main content

Query Active Directory from SSMS - 3 steps


Step1: Get the Servers
Run the following command to get the list of all linked servers.
sp_linkedservers

Note: sp_helpserver can also be used to list the available servers

Step 2: Add the server you want to connect to [This is important, because most people mess up here]

To add a linked server we will use the following command
sp_addlinkedserver

EXEC sp_addlinkedserver
@server=N'S1_instance1',
@srvproduct=N'',
@provider=N'SQLNCLI',
@datasrc=N'S1\instance1';

Step 3: Query the Active Directory

DECLARE @Application TABLE (cn varchar(50));
DECLARE @ApplicationCN varchar(50);
DECLARE @SQLString nvarchar(MAX);
DECLARE @ApplicationName varchar(20)= 'yy' -- name of the container
DECLARE @Role varchar(20) = 'xxx'
DECLARE @Domain nvarchar(20) = 'a.com' -- if this is a.com

SET @SQLString='SELECT cn FROM OPENQUERY(ADSI,''SELECT cn FROM ''''LDAP://' +@Domain +''''' WHERE objectClass=''''msDS-AzApplication'''' AND msDS-AzApplicationName='''''+@ApplicationName+''''''')';

PRINT (@SQLString)

INSERT @Application EXEC(@SQLString);

SET @ApplicationCN=(SELECT TOP 1 cn FROM @Application);

SET @SQLString='SELECT * FROM OPENQUERY(ADSI,''SELECT userPrincipalName,givenName,sn,samAccountName, cn, company, department, Name, Mail,telephoneNumber,mobile, l, physicalDeliveryOfficeName, postalCode, streetAddress, facsimileTelephoneNumber, distinguishedName, info FROM ''''LDAP://' +@Domain +''''' WHERE msDS-MembersForAzRoleBL=''''CN='+@Role+',CN=AzRoleObjectContainer-'+@ApplicationCN+',CN='+@ApplicationCN+ ',CN=US,OU=EDFrameworkAuthorizationStores,DC=a,DC=com'''''') order by 1'

EXEC (@SQLString);

--Let me know in case you face any problem.

Comments

Post a Comment

Popular posts from this blog

JavaScript Interview Questions

This is a compilations of all the interview questions related to Javascript that i have encountered.  Q: Difference between window.onload and onDocumentReady? A: The onload event does not fire until every last piece of the page is loaded, this includes css and images, which means there’s a huge delay before any code is executed. That isnt what we want. We just want to wait until the DOM is loaded and is able to be manipulated. onDocumentReady allows the programmer to do that. Q:  What is the difference between == and === ? A: The == checks for value equality, but === checks for both type and value. Few examples: "1" == 1; // value evaluation only, yields true "1" === 1; // value and type evaluation, yields false "1" == true; // "1" as boolean is true, value evaluation only, yields true "1" === false; // value and type evaluation, yields false Q: What does “1″+2+5 evaluate to? What about 5 + 2 +...

Adding a linked Server using the GUI

Adding a linked Server using the GUI There are two ways to add another SQL Server as a linked server.  Using the first method, you need to specify the actual server name as the “linked server name”.  What this means is that everytime you want to reference the linked server in code, you will use the remote server’s name.  This may not be beneficial because if the linked server’s name changes, then you will have to also change all the code that references the linked server.  I like to avoid this method even though it is easier to initially setup.  The rest of the steps will guide you through setting up a linked server with a custom name: To add a linked server using SSMS (SQL Server Management Studio), open the server you want to create a link from in object explorer. In SSMS, Expand Server Objects -> Linked Servers -> (Right click on the Linked Server Folder and select “New Linked Server”) Add New Linked Server The “New Linked Server” Dialog a...

ASP.NET Basics

ASP.NET is a server side technology for developing web based applications based on Microsoft .Net  Framework. ASP.NET is run on the web server. When a user click on a page/website link on a web browser, a request is sent to the web server. The web server reads the code and generates a web page . The web page is then sent to the browser where the client reads this page. Since the processing is on the server, it is called 'Server Side technology'. Features of ASP.NET: It lets you write server side code using over 40 languages. Most popular being C# and VB ASP.NET pages are compiled, not interpreted It has full access to the functionality  of .Net Framework... XML, web services, database interaction, emails, regular expression You can separate server side code of your page from HTML layout Easy to reuse common User Interface elements An ASP.NET page generally consists of the following: 1. Directive: Controls how page is compiles , how page is cached by web browser, err...