You are not logged in.
Pages: 1
Hi,
I was looking trough a few the system stored procedures and ran into a syntax that is new to me an was hoping someone could help me out. I found it in the stored procedure sp_denylogin and the line that I am a bit confused about is:
EXEC %%LocalLogin(Name = @loginame).Lock(Exclusive = 0)
The '%%' is the part I am questioning.
Thanks in Advance!
P.S: The full procedure:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER procedure [sys].[sp_denylogin]
@loginame sysname
AS
-- SETUP RUNTIME OPTIONS / DECLARE VARIABLES --
set nocount on
declare @ret int -- return value of sp call
declare @exec_stmt nvarchar(4000)
-- CHECK PERMISSIONS --
IF (not is_srvrolemember('securityadmin') = 1)
begin
dbcc auditevent (105, 3, 0, @loginame, NULL, NULL, NULL, NULL, NULL, NULL)
raiserror(15247,-1, -1)
return (1)
end
ELSE
begin
dbcc auditevent (105, 3, 1, @loginame, NULL, NULL, NULL, NULL, NULL, NULL)
end
-- DISALLOW USER TRANSACTION --
set implicit_transactions off
IF (@@trancount > 0)
begin
raiserror(15002,-1,-1,'sys.sp_denylogin')
return (1)
end
-- DISALLOW SQL LOGIN (IE. MUST BE 'DOMAIN\USER') --
if (charindex('\', @loginame) = 0)
begin
raiserror(15407, -1, -1, @loginame)
return (1)
end
BEGIN TRANSACTION
EXEC %%LocalLogin(Name = @loginame).Lock(Exclusive = 0)
-- ADD ROW FOR NT LOGIN IF NEEDED --
if @@error <> 0 -- not found
begin
execute @ret = sys.sp_MSaddlogin_implicit_ntlogin @loginame
if (@ret <> 0)
begin
ROLLBACK TRANSACTION
raiserror(15401,-1,-1 ,@loginame)
return (1)
end
-- login locked
end
-- DENY ACCESS --
EXEC %%LocalLogin(Name = @loginame).SetAccess(HasAccess = -1)
COMMIT TRANSACTION
-- FINALIZATION: RETURN SUCCESS --
return (0) -- sp_denylogin
Offline
you need to change this code line if @@error <> 0
Offline
Pages: 1