Grant execute permission for a user on all stored procedures in database?

前端 未结 5 909
傲寒
傲寒 2020-12-07 14:40

I generated script from old database, created a new database and imported all data from old database. So far so good, however, no user has execute rights for stored procedur

5条回答
  •  心在旅途
    2020-12-07 14:59

    USE [DATABASE]
    
    DECLARE @USERNAME VARCHAR(500)
    
    DECLARE @STRSQL NVARCHAR(MAX)
    
    SET @USERNAME='[USERNAME] '
    SET @STRSQL=''
    
    select @STRSQL+=CHAR(13)+'GRANT EXECUTE ON ['+ s.name+'].['+obj.name+'] TO'+@USERNAME+';'
    from
        sys.all_objects as obj
    inner join
        sys.schemas s ON obj.schema_id = s.schema_id
    where obj.type in ('P','V','FK')
    AND s.NAME NOT IN ('SYS','INFORMATION_SCHEMA')
    
    
    EXEC SP_EXECUTESQL @STRSQL
    

提交回复
热议问题