How to: Remove User Permissions
[This content is no longer valid. For the latest information on "M", "Quadrant", SQL Server Modeling Services, and the Repository, see the Model Citizen blog.]
This tutorial demonstrates how to remove user access from the SQL Server Modeling Services database. This includes removing permissions from users for specific operations on Modeling Services Folders. For more information about creating Modeling Services Folders, see How to: Create and Use SQL Server Modeling Services Folders.
Note
This tutorial removes permissions from a Windows domain login associated with a Modeling Services database user named domainuser
. Another tutorial explains how to create this user and add Modeling Services database and Folder permissions. For more information, see How to: Grant Users Access to SQL Server Modeling Services.
Note
The processes for granting and revoking Modeling Services roles and Folder permissions can be used together to make security changes. For example, an administrator can remove a user’s role membership for RepositoryAdministrator and then add them to the role for RepositoryReaderWriter.
To revoke Modeling Services Folder permissions
On the Start menu, click All Programs, Microsoft SQL Server 2008, and open SQL Server Management Studio.
In the Connect to Server dialog, type the name of the Modeling Services server in the Server name combo box.
Specify the Authentication properties, and then click the Connect button.
Note
Managing user permissions in the Modeling Services database requires the caller to belong to either the RepositoryAdministrator role or the SQL Server sysadmin role.
On the toolbar, click the New Query button. A blank query window should open.
In the query window, add the following T-SQL statements to revoke the read permissions on the
Applications
Folder for the user nameddomainuser
.use Repository go -- Obtain the Id for the Applications Folder by name. declare @folder as [Repository.Item].[FolderId] set @folder = [Repository.Item].[PathsFolder](N'HumanResourcesApp') -- Folder Resource Kind. declare @target_resourceKind as [Repository.Item].[SecuredResourceKindId] select @target_resourceKind = Id from [Repository.Item].[SecuredResourceKinds] where Name = N'https://schemas.microsoft.com/Repository/2007/10/Identity/Resources/Folder' -- Read Operation. declare @target_operation as [Repository.Item].[SecuredOperationId] select @target_operation = Id from [Repository.Item].[SecuredOperations] where Name = N'https://schemas.microsoft.com/Repository/2007/10/Operations/Read' -- GrantPrincipalPermission passing in the new login. -- The claim kind, SID, and the SID itself are -- generated by the stored procedure. exec [Repository.Item].[RevokePrincipalPermission] @principal = 'domainuser', @resourceKind = @target_resourceKind, @resource = @folder, @operation = @target_operation go
Press the F5 key to run the T-SQL query. This query first obtains the identifier for the
Applications
Folder. It then gets the [Repository.Item].[SecuredResourceKindId] for the Modeling Services Folder resource kind. It also gets an [Repository.Item].[SecuredOperationId] for the read operation. Each of these values is passed as a parameter to the [Repository.Item].[RevokePrincipalPermission] stored procedure. This revokes the permissions for thedomainuser
user to read rows that belong to theHumanResourcesApp
Folder.
To remove user access to the Modeling Services database
In the SQL Server Management Studio query window, replace the previous text with the following T-SQL statements.
use Repository go exec sp_droprolemember @rolename = 'RepositoryReader' , @membername = 'domainuser' exec sp_droprolemember @rolename = 'RepositoryReaderWriter' , @membername = 'domainuser' exec sp_droprolemember @rolename = 'RepositoryAdministrator' , @membername = 'domainuser' go
Press the F5 key to run the T-SQL query. This removes the database user
domainuser
from all possible standard Modeling Services user roles.Note
Note that an administrator can grant database object permissions to a user outside of these roles. Any custom user permissions must be removed as well. One way to do this is with the T-SQL REVOKE statement.
To completely restrict the user from connecting to the Modeling Services database, remove the user from the database with the DROP USER T-SQL statement. In the query window, replace the existing text with the following statement.
-- Drop the domain user from the Repository database. drop user domainuser
To completely restrict the user from connecting to the SQL Server, remove the login from the server with the DROP LOGIN T-SQL statement. In the query window, replace the existing text with the following statement.
Note
In the following script, change the
DOMAINNAME\username
name to the window domain account that was previously associated with thedomainuser
user.-- Drop the login on the SQL Server. drop login [DOMAINNAME\username]
See Also
Tasks
How to: Grant Users Access to SQL Server Modeling Services