Re: Granting EXEC to all my user sprocs in one hit

From: Jasper Smith (jasper_smith9_at_hotmail.com)
Date: 04/26/04


Date: Mon, 26 Apr 2004 21:50:27 +0100

You can run the procedure below (after you have created it in master) in the
context of a user database e.g.

use pubs
go
exec sp_grantexec 'foo',1

-- create the procedure in master

use master
go
create procedure sp_grantexec(@user sysname,@debug int = 0)
as
set nocount on
declare @ret int
declare @sql nvarchar(4000)
declare @db sysname ; set @db = DB_NAME()
declare @u sysname ; set @u = QUOTENAME(@user)

set @sql ='select ''grant exec on '' + QUOTENAME(ROUTINE_SCHEMA) + ''.'' +
          QUOTENAME(ROUTINE_NAME) + '' TO ' + @u + ''' FROM
INFORMATION_SCHEMA.ROUTINES ' +
          'WHERE OBJECTPROPERTY(OBJECT_ID(ROUTINE_NAME),''IsMSShipped'') =
0'

if @debug = 1 print @sql

exec @ret = master.dbo.xp_execresultset @sql,@db

If @ret <> 0
begin
   raiserror('Error executing command %s',16,1,@sql)
   return -1
end

-- 
HTH
Jasper Smith (SQL Server MVP)
I support PASS - the definitive, global
community for SQL Server professionals -
http://www.sqlpass.org
"Alec MacLean" <alec.maclean@copeohs.com.NO_SPAM> wrote in message
news:OuU1Sj7KEHA.3332@TK2MSFTNGP10.phx.gbl...
> Hi,
> (I'm a web-programmer, having to double as a DBA, so please forgive me if
> this is a stupid question!)
>
> I've been trying to determine if it is possible to:
>
> 1. Retrieve all my user-created sprocs for a specified dbo (to a temp
> table), then
> 2. Grant the EXEC privilege to these user-sprocs only (excluding the
system
> sprocs).
>
> OR:
> 3. Grant the EXEC permission using SEMgr across all my user-sprocs at one
go
> instead of bashing the daylights out of my spacebar.
>
> I'm trying to achieve this because I have two dbo's: one production and
one
> dev.
> I'm detaching the live copy and copying the files across to dev machine,
> then re-attaching them in their respective places, in order to get a
> snapshot of the data in the production version across to my dev copy (for
> testing report queries and saving me creating a LOAD of fake data).
>
> # because of the relationships and number of tables, exporting data from
> master to dev is a PITA, as I'd have to purge all the dev tables and set
> identity insert on the export transformation - I suppose I ought to build
an
> admin-only procedure to do all this...:( #
>
> Once I've re-attached the dev copy, I've found I have to remove the
assigned
> built-in account from the dbo's user list and re-add the user.  This then
> means I've got to add the exec permissions as well, which while not a
> difficult task in SEMgr, it is a pain to do this way as I currently have
> over 200 sprocs.
>
> I see that the GRANT syntax allows me to set the permission, but only for
> one sproc at a time.  If I can retrieve a list of the "usp_" prefixed
sprocs
> for my specific dbo, I could put these in a temp table, then loop this and
> set the permissions.
>
> Surely this type of info is available in one of the system tables, as this
> must be how the SEMgr permissions dialog is populated?
>
> TIA for any help.
>
> -- 
> Alec MacLean
>
>
>


Relevant Pages

  • Re: Two Way Bidirectional Rep
    ... Let me post my entire script with what I did. ... use master ... exec sp_replicationdboption N'WEB_TSK_MGMT', N'publish', true ... "The process could not connect to server 'GRSSQL'. ...
    (microsoft.public.sqlserver.replication)
  • Re: System sproc to channel to database(s)
    ... permissions in master. ... use northwind ... use pubs ... exec dbo.sp_MS_marksystemobject 'dbo.sp_insertSomething' ...
    (microsoft.public.sqlserver.programming)
  • Re: Content Editor Web Part Javascript error with more than 2 on a
    ... have heard nothing from MS regarding this matter either. ... master and also a default master. ... I cannot readily reproduce the issue in my test or dev ... I am using next to zero customizations. ...
    (microsoft.public.sharepoint.portalserver)
  • Re: Content Editor Web Part Javascript error with more than 2 on a
    ... CEWP on a blank web part page I get the error. ... I have tried with a custom ... master and also a default master. ... I cannot readily reproduce the issue in my test or dev ...
    (microsoft.public.sharepoint.portalserver)
  • Re: Finding total used space
    ... If you run sp_helpfile against each database you will get a report. ... exec sp_helpfile 'master' ... the file space for a database is actually used. ... > Is there a table somewhere in master or somewhere, ...
    (microsoft.public.sqlserver.security)