Granting privileges to the 生产化制图 (Production Mapping) workspace components in SQL Server (Production Mapping)

The geodatabase administrator must grant specific privileges to the tables for all users who will be accessing the Esri Production Mapping workspace. This can be accomplished by creating database roles and assigning the roles to the individual users.

注注:

Copying and pasting the example may cause syntax errors.

Granting permissions

In SQL Server Management Studio, grant permissions to the 生产化制图 (Production Mapping) workspace tables through the schema. The sample script shows how to remove existing members from a role and drop the roles, and re-create the role and assign permissions to the role through the schema.

USE [pmdb]
GO
EXEC sp_droprolemember 'pm_editor', 'giseditor'
GO
EXEC sp_droprole 'pm_editor'
GO
EXEC sp_addrole 'pm_editor', 'pm'
GO
GRANT DELETE ON SCHEMA::[pm] TO [pm_editor]
GRANT EXECUTE ON SCHEMA::[pm] TO [pm_editor]
GRANT INSERT ON SCHEMA::[pm] TO [pm_editor]
GRANT SELECT ON SCHEMA::[pm] TO [pm_editor]
GRANT UPDATE ON SCHEMA::[pm] TO [pm_editor]
GO
EXEC sp_droprolemember 'pm_viewer', 'gisviewer'
GO
EXEC sp_droprole 'pm_viewer'
GO
EXEC sp_addrole 'pm_viewer', 'pm'
GO
GRANT SELECT ON SCHEMA::[pm] TO [pm_viewer]
GO

Verifying roles

The following script will list the roles.

EXEC sp_helprolemember 'pm_editor'
GO
EXEC sp_helprolemember 'pm_viewer'
GO

Verifying role permissions

The following script will list the privileges assigned to the role.

select dp.NAME AS principal_name,
 dp.type_desc AS principal_type_desc,
 o.NAME AS object_name,
 p.permission_name,
 p.state_desc AS permission_state_desc 
 from sys.database_permissions p
 left OUTER JOIN sys.all_objects o
 on p.major_id = o.OBJECT_ID
 inner JOIN sys.database_principals dp
 on p.grantee_principal_id = dp.principal_id
 where dp.NAME in ('pm_editor','pm_viewer')
GO

Creating an editor user

Users should have their own login names. The example below shows how to create an editor ArcSDE user.

Create the editor login.

USE master
GO
EXEC sp_addlogin N'giseditor', 'gis$editor', @logindb, @loginlang
GO

Create the user for the login in the PMDB.

USE [pmdb]
GO
CREATE USER [giseditor] FOR LOGIN [giseditor]
GO

Add the user to the editor role.

USE [pmdb]
GO
EXEC sp_addrolemember N'pm_editor', N'giseditor'
GO

Creating a viewer user

Users should have their own login names. The example below shows how to create a viewer ArcSDE user.

Create the viewer login.

USE master
GO
EXEC sp_addlogin N'gisviewer', 'gis$viewer', @logindb, @loginlang
GO

Create the user for the login in the PMDB.

USE [pmdb]
GO
CREATE USER [gisviewer] FOR LOGIN [gisviewer]
GO

Add the user to the editor role.

USE [pmdb]
GO
EXEC sp_addrolemember N'pm_viewer', N'gisviewer'
GO
4/27/2014