USE [test] GO Alter PROCEDURE dbo.CreateUser @loginName nvarchar(100), @userName nvarchar(100) , @schemaName nvarchar(10) AS SET NOCOUNT ON; IF NOT EXISTS (SELECT [name] FROM [sys].[database_principals] WHERE [type] = N'S' AND [name] = @loginName) BEGIN CREATE LOGIN [@loginName] WITH PASSWORD=N'123', DEFAULT_DATABASE=[test], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF Create USER [@userName] for login [@loginName] GRANT SELECT, INSERT, UPDATE, DELETE ON SCHEMA :: [dbo] to [@userName] GRANT SELECT, INSERT, UPDATE, DELETE ON SCHEMA :: [@schemaName] to [@userName] END