Please start any new threads on our new site at https://forums.sqlteam.com. We've got lots of great SQL Server experts to answer whatever question you can come up with.

 All Forums
 SQL Server 2000 Forums
 Transact-SQL (2000)
 What in the world??????

Author  Topic 

derrickleggett
Pointy Haired Yak DBA

4184 Posts

Posted - 2005-03-01 : 15:05:21
I was looking at this script I had buried away in my library from who knows when. I HATE when I don't document things. You ever see something like this, and think....there had to be soooooooome good reason for me to write it this way!!!!!!



DECLARE
@bitIncludeSystemFunctions BIT,
@intMaxID1 INT,
@intMinID1 INT,
@txtGroup VARCHAR(256),
@txtObject1 VARCHAR(256),
@txtObjectTypes VARCHAR(55),
@txtOwner VARCHAR(256),
@txtPermissions VARCHAR(55),
@txtSQLString1 VARCHAR(4000)

SELECT
@bitIncludeSystemFunctions = '1',
@txtPermissions = 'ALL',
@txtGroup = 'public',
-- @txtObjectTypes = '''P'',''T'''
@txtObjectTypes = 'ALL'

SELECT @txtGroup = '[' + @txtGroup + ']'

IF (SELECT OBJECT_ID('tempdb..#tmpObjects')) IS NOT NULL
BEGIN
DROP TABLE #tmpObjects
END

CREATE TABLE #tmpObjects (intID INT IDENTITY(1,1), txtObjectName VARCHAR(256), txtOwner VARCHAR(256))

--Determine what groups to add based on @txtObjectTypes
IF @txtObjectTypes = 'ALL'
BEGIN
INSERT #tmpObjects (txtObjectName, txtOwner)
SELECT
so.name,
su.name
FROM
sysobjects so
INNER JOIN sysusers su ON so.uid = su.uid
WHERE
so.xtype IN('FN','IF','P','RF','S','TF','U','V','X')
AND so.name NOT LIKE 'dt_%'
AND su.name <> 'system_function_schema'
END
ELSE
BEGIN
SELECT @txtSQLString1 = '
SELECT
so.name,
su.name
FROM
sysobjects so
INNER JOIN sysusers su ON so.uid = su.uid
WHERE
so.xtype IN(' + @txtObjectTypes + ')
AND so.name NOT LIKE ''dt_%''
AND su.name <> ''system_function_schema'''

INSERT #tmpObjects (txtObjectName)
EXEC (@txtSQLString1)
-- PRINT @txtSQLString1
END

SELECT
@intMaxID1 = (SELECT MAX(intID) FROM #tmpObjects),
@intMinID1 = (SELECT MIN(intID) FROM #tmpObjects)

WHILE @intMinID1 <= @intMaxID1
BEGIN

SELECT
@txtObject1 = (SELECT '[' + txtObjectName + ']' FROM #tmpObjects WHERE intID = @intMinID1),
@txtOwner = (SELECT '[' + txtOwner + ']' FROM #tmpObjects WHERE intID = @intMinID1)

SELECT @txtSQLString1 = 'REVOKE ' + @txtPermissions + ' ON ' + @txtOwner + '.' + @txtObject1 + ' TO ' + @txtGroup

-- PRINT @txtSQLString1
EXEC (@txtSQLString1)

SELECT @intMinID1 = @intMinID1 + 1
END



MeanOldDBA
derrickleggett@hotmail.com

When life gives you a lemon, fire the DBA.

spirit1
Cybernetic Yak Master

11752 Posts

Posted - 2005-03-01 : 15:14:17
post it on WTF and rejoice in the answers.
so WHY did you do it?

Go with the flow & have fun! Else fight the flow
Go to Top of Page

Xerxes
Aged Yak Warrior

666 Posts

Posted - 2005-03-01 : 16:00:32
Interface MSDE?

Semper fi,

XERXES, USMC(Ret.)
------------------------------------------------------
The Marine Corps taught me everything but SQL!
Go to Top of Page

derrickleggett
Pointy Haired Yak DBA

4184 Posts

Posted - 2005-03-01 : 17:58:26
I have no idea spirit. lol I'm sure it was BRIIIIIILIANT though.

MeanOldDBA
derrickleggett@hotmail.com

When life gives you a lemon, fire the DBA.
Go to Top of Page
   

- Advertisement -