The meta data is from an SQL 2012 Server.
I have posted alot more, find the whole list here.
Goto Definition or MetaData
Definition:
sys.sp_helpuser(nvarchar @name_in_db)MetaData:
create procedure sys.sp_helpuser -- - 1996/08/14 10:33 @name_in_db sysname = NULL -- User,Alias AS set nocount on set ansi_warnings off declare @RetCode int ,@_rowcount int declare @charMaxLen_UsName varchar(11) ,@charMaxLen_RlName varchar(11) ,@charMaxLen_LoName varchar(11) ,@charMaxLen_DbName varchar(11) ,@charMaxLen_ScName varchar(11) declare @Name1Type char(2) -- -- -- -- -- -- -- -- -- -- -- - create holding table -- -- -- -- -- -- -- -- -- -- -- Create temp table before any DML to ensure dynamic -- CREATE TABLE #tb1_uga ( zUserName sysname collate catalog_default Null ,zRoleName sysname collate catalog_default Null ,zLoginName sysname collate catalog_default Null ,zDefDBName sysname collate catalog_default Null ,zDefScName sysname collate catalog_default Null ,zUID int Null ,zSID varbinary(85) Null ) -- -- -- -- select @RetCode = 0 ,@Name1Type = Null -- -- -- -- -- -- - What type of value (U,G,A) was input? -- -- -- -- -- -- -- -- -- -- -- NULL IF (@name_in_db IS Null) begin select @Name1Type = '-' INSERT into #tb1_uga ( zUserName ,zRoleName ,zLoginName ,zDefDBName ,zDefScName ,zUID ,zSID ) select u.name ,case when (r.principal_id is null) then 'public' else r.name end ,l.name ,l.default_database_name ,u.default_schema_name ,u.principal_id ,u.sid from sys.database_principals u left join (sys.database_role_members m join sys.database_principals r on m.role_principal_id = r.principal_id) on m.member_principal_id = u.principal_id left join sys.server_principals l on u.sid = l.sid where u.type <> 'R' GOTO LABEL_25NAME1TYPEKNOWN end -- -- -- -- USER INSERT into #tb1_uga ( zUserName ,zRoleName ,zLoginName ,zDefDBName ,zDefScName ,zUID ,zSID ) select u.name ,case when (r.principal_id is null) then 'public' else r.name end ,l.name ,l.default_database_name ,u.default_schema_name ,u.principal_id ,u.sid from sys.database_principals u left join (sys.database_role_members m join sys.database_principals r on m.role_principal_id = r.principal_id) on u.principal_id = m.member_principal_id left join sys.server_principals l on u.sid = l.sid where u.name = @name_in_db and u.type <> 'R' select @_rowcount = @@rowcount IF (@_rowcount > 0) begin select @Name1Type = 'US' GOTO LABEL_25NAME1TYPEKNOWN end -- -- -- -- ROLES if exists (select * from sys.database_principals where name = @name_in_db and type = 'R') begin select @Name1Type = 'RL' select Role_name = substring(r.name, 1, 25), Role_id = r.principal_id, Users_in_role = substring(u.name, 1, 25), Userid = u.principal_id from sys.database_principals u, sys.database_principals r, sys.database_role_members m where r.name = @name_in_db and r.principal_id = m.role_principal_id and u.principal_id = m.member_principal_id order by 1, 2 GOTO LABEL_75FINAL -- Done end -- -- -- -- Error raiserror(15198,-1,-1 ,@name_in_db) -- Input Name is unfound select @RetCode = @RetCode | 1 GOTO LABEL_75FINAL -- -- -- -- LABEL_25NAME1TYPEKNOWN: -- -- -- -- -- -- -- -- -- -- -- - Printout the report -- -- -- -- -- -- -- -- -- -- -- -- - -- -- -- -- Preparations for dynamic exec select @charMaxLen_UsName = convert( varchar, isnull( max( datalength( zUserName)),8)) ,@charMaxLen_RlName = convert( varchar, isnull( max( datalength( zRoleName)),9)) ,@charMaxLen_LoName = convert( varchar, isnull( max( datalength( zLoginName)),9)) ,@charMaxLen_DbName = convert( varchar, isnull( max( datalength( zDefDBName)),9)) ,@charMaxLen_ScName = convert( varchar, isnull( max( datalength( zDefScName)),9)) from #tb1_uga -- -- -- -- Dynamic EXEC() to printout report EXECUTE( ' select ''UserName'' = substring(zUserName ,1,' + @charMaxLen_UsName + ') ,''RoleName'' = substring(zRoleName,1,' + @charMaxLen_RlName + ') ,''LoginName'' = substring(zLoginName,1,' + @charMaxLen_LoName + ') ,''DefDBName'' = substring(zDefDBName,1,' + @charMaxLen_DbName + ') ,''DefSchemaName'' = substring(zDefScName,1,' + @charMaxLen_ScName + ') ,''UserID'' = convert(char(10),zUID) ,''SID'' = zSID from #tb1_uga order by 1 ' ) -- -- -- -- -- -- -- -- -- -- -- - Finalization -- -- -- -- -- -- -- -- -- -- -- LABEL_75FINAL: IF (object_id('tempdb..#tb1_uga') IS not Null) DROP TABLE #tb1_uga return @RetCode -- sp_helpuser
No comments:
Post a Comment