<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      [推薦](T-SQL) 得到一個(gè)給定用戶使用了的權(quán)限腳本

      [推薦]得到一個(gè)給定用戶使用了的權(quán)限腳本

      ——通過知識(shí)共享樹立個(gè)人品牌。

      得到一個(gè)給定用戶使用了的權(quán)限腳本,直接上代碼,自己研究。

           SET ANSI_NULLS ON

      GO
      SET QUOTED_IDENTIFIER ON
      GO
      CREATE PROCEDURE [dbo].[p_user_permissions_script_get] 
      -----------------------------------------------------------
      -- OBJECT NAME :dbo.p_user_permissions_script_get
      -- AUTHOR: EricHu
      -- DATE: 01/05/2012
      -- INPUT PARAMETERS:         
          @userName VARCHAR(500)
      --
      -- OUTPUT PARAMETERS: none
      -- DEPENDENCIES: none
      -- DESCRIPTION: Used to script out permissions for a given user
      -- MODIFICATION HISTORY: 
      -------------------------------------------------------------
      AS

      SET NOCOUNT ON

      DECLARE @DatabaseUserName [SYSNAME];

      SET @DatabaseUserName = @userName;


      DECLARE @errStatement   VARCHAR(1000),
              @msgStatement   VARCHAR(1000),
              @DatabaseUserID SMALLINT,
              @ServerUserName SYSNAME,
              @RoleName       VARCHAR(1000),
              @ObjectID       INT,
              @ObjectName     VARCHAR(1000),
              @StateDesc       VARCHAR(1000),
              @permissionName VARCHAR(1000)
              
              
            

      SELECT @DatabaseUserID = su.[uid],
             @ServerUserName = sl.[loginname]
      FROM   dbo.[sysusers] su
             INNER JOIN [master].dbo.[syslogins] sl
               ON su.[sid] = sl.[sid]
      WHERE  su.[name] = @DatabaseUserName

      IF @DatabaseUserID IS NULL
        BEGIN
            SET @errStatement = 'User ' + @DatabaseUserName + ' does not exist in ' + DB_NAME() 
                              + CHAR(13) + 'Please provide the name of a current user in ' + DB_NAME() 
                              + ' you wish to script.'

            RAISERROR(@errStatement,
                      16,
                      1)
        END
      ELSE
        BEGIN
            SET @msgStatement = '--Security creation script for user ' + @ServerUserName + CHAR(13) 
                              + '--Created At: ' + CONVERT(VARCHAR, GETDATE(), 100) 
                              + REPLACE(CONVERT(VARCHAR, GETDATE(), 108), ':', '') + CHAR(13) 
                              + '--Created By: ' + SUSER_NAME() + CHAR(13) + '--Add User To Database' 
                              + CHAR(13) + 'USE [' + DB_NAME() + ']' + CHAR(13) 
                              + 'EXEC [sp_grantdbaccess]' + CHAR(13) + CHAR(9) 
                              + '@loginame = ''' + @ServerUserName + ''',' + CHAR(13) + CHAR(9) 
                              + '@name_in_db = ''' + @DatabaseUserName + '''' + ';'+ CHAR(13) + 'GO' 
                              + CHAR(13) + '--Add User To Roles'

            PRINT @msgStatement

            DECLARE _sysusers CURSOR LOCAL FORWARD_ONLY READ_ONLY FOR
              SELECT [name]
              FROM   [dbo].[sysusers]
              WHERE  [uid] IN (SELECT [groupuid]
                               FROM   [dbo].[sysmembers]
                               WHERE  [memberuid] = @DatabaseUserID)

            OPEN _sysusers

            FETCH NEXT FROM _sysusers INTO @RoleName

            WHILE @@FETCH_STATUS = 0
              BEGIN
                  SET @msgStatement = 'EXEC [sp_addrolemember]' + CHAR(13) + CHAR(9) + '@rolename = ''' 
                                    + @RoleName + ''',' + CHAR(13) + CHAR(9) + '@membername = ''' 
                                    + @DatabaseUserName + ''''  + ';' ;

                  PRINT @msgStatement

                  FETCH NEXT FROM _sysusers INTO @RoleName
              END
              
              
              CLOSE _sysusers;
              
              DEALLOCATE _sysusers;
              
             --Database level perms;
             
             PRINT '--Set Database level Permissions';
             DECLARE _databaselevelperms CURSOR LOCAL FORWARD_ONLY READ_ONLY FOR      
              SELECT 
                   sdp.state_desc,
                   sdp.permission_name
              FROM 
                  sys.database_permissions sdp WITH(NOLOCK)
                  
                  JOIN sysusers  su WITH(NOLOCK)
                      ON su.uid = sdp.grantee_principal_id
                      
              WHERE 
                  su.name = @userName
                  AND sdp.class_desc = 'DATABASE';
          

            OPEN _databaselevelperms;
            
            FETCH NEXT FROM _databaselevelperms INTO @StateDesc, @PermissionName;
            
            WHILE @@FETCH_STATUS = 0 
            BEGIN 
            
              PRINT @StateDesc  + CHAR(13) + CHAR(9) + @PermissionName  + CHAR(13) + CHAR(9) 
                    + 'TO ' + @userName + ';';
              
              FETCH NEXT FROM _databaselevelperms INTO @StateDesc, @PermissionName
              
            END
            
            CLOSE _databaselevelperms;

            DEALLOCATE _databaselevelperms;

            SET @msgStatement = 'GO' + CHAR(13) + '--Set Object Specific Permissions'

            PRINT @msgStatement;

            DECLARE _sysobjects CURSOR LOCAL FORWARD_ONLY READ_ONLY FOR
              SELECT DISTINCT( [sysobjects].[id] ),
                             '[' + USER_NAME([sysobjects].[uid]) + '].[' + [sysobjects].[name] + ']'
              FROM   [dbo].[sysprotects]
                     INNER JOIN [dbo].[sysobjects]
                       ON [sysprotects].[id] = [sysobjects].[id]
              WHERE  [sysprotects].[uid] = @DatabaseUserID;

            OPEN _sysobjects;

            FETCH NEXT FROM _sysobjects INTO @ObjectID, @ObjectName;

            WHILE @@FETCH_STATUS = 0
              BEGIN
                  SET @msgStatement = '';

                  IF EXISTS(SELECT 1
                            FROM   [dbo].[sysprotects]
                            WHERE  [id] = @ObjectID
                                   AND [uid] = @DatabaseUserID
                                   AND [action] = 193
                                   AND [protecttype] = 205)
                    SET @msgStatement = @msgStatement + 'SELECT,';

                  IF EXISTS(SELECT 1
                            FROM   [dbo].[sysprotects]
                            WHERE  [id] = @ObjectID
                                   AND [uid] = @DatabaseUserID
                                   AND [action] = 195
                                   AND [protecttype] = 205)
                    SET @msgStatement = @msgStatement + 'INSERT,';

                  IF EXISTS(SELECT 1
                            FROM   [dbo].[sysprotects]
                            WHERE  [id] = @ObjectID
                                   AND [uid] = @DatabaseUserID
                                   AND [action] = 197
                                   AND [protecttype] = 205)
                    SET @msgStatement = @msgStatement + 'UPDATE,';

                  IF EXISTS(SELECT 1
                            FROM   [dbo].[sysprotects]
                            WHERE  [id] = @ObjectID
                                   AND [uid] = @DatabaseUserID
                                   AND [action] = 196
                                   AND [protecttype] = 205)
                    SET @msgStatement = @msgStatement + 'DELETE,';

                  IF EXISTS(SELECT 1
                            FROM   [dbo].[sysprotects]
                            WHERE  [id] = @ObjectID
                                   AND [uid] = @DatabaseUserID
                                   AND [action] = 224
                                   AND [protecttype] = 205)
                    SET @msgStatement = @msgStatement + 'EXECUTE,';

                  IF EXISTS(SELECT 1
                            FROM   [dbo].[sysprotects]
                            WHERE  [id] = @ObjectID
                                   AND [uid] = @DatabaseUserID
                                   AND [action] = 26
                                   AND [protecttype] = 205)
                    SET @msgStatement = @msgStatement + 'REFERENCES,';

                  IF LEN(@msgStatement) > 0
                    BEGIN
                        IF RIGHT(@msgStatement, 1) = ','
                          SET @msgStatement = LEFT(@msgStatement, LEN(@msgStatement) - 1);

                        SET @msgStatement = 'GRANT' + CHAR(13) + CHAR(9) + @msgStatement + CHAR(13) 
                                          + CHAR(9) + 'ON ' + @ObjectName + CHAR(13) + CHAR(9) + 'TO ' 
                                          + @DatabaseUserName + ';' ;

                        PRINT @msgStatement;
                    END

                  SET @msgStatement = '';

                  IF EXISTS(SELECT 1
                            FROM   [dbo].[sysprotects]
                            WHERE  [id] = @ObjectID
                                   AND [uid] = @DatabaseUserID
                                   AND [action] = 193
                                   AND [protecttype] = 206)
                    SET @msgStatement = @msgStatement + 'SELECT,'

                  IF EXISTS(SELECT 1
                            FROM   [dbo].[sysprotects]
                            WHERE  [id] = @ObjectID
                                   AND [uid] = @DatabaseUserID
                                   AND [action] = 195
                                   AND [protecttype] = 206)
                    SET @msgStatement = @msgStatement + 'INSERT,';

                  IF EXISTS(SELECT 1
                            FROM   [dbo].[sysprotects]
                            WHERE  [id] = @ObjectID
                                   AND [uid] = @DatabaseUserID
                                   AND [action] = 197
                                   AND [protecttype] = 206)
                    SET @msgStatement = @msgStatement + 'UPDATE,';

                  IF EXISTS(SELECT 1
                            FROM   [dbo].[sysprotects]
                            WHERE  [id] = @ObjectID
                                   AND [uid] = @DatabaseUserID
                                   AND [action] = 196
                                   AND [protecttype] = 206)
                    SET @msgStatement = @msgStatement + 'DELETE,'

                  IF EXISTS(SELECT 1
                            FROM   [dbo].[sysprotects]
                            WHERE  [id] = @ObjectID
                                   AND [uid] = @DatabaseUserID
                                   AND [action] = 224
                                   AND [protecttype] = 206)
                    SET @msgStatement = @msgStatement + 'EXECUTE,';

                  IF EXISTS(SELECT *
                            FROM   [dbo].[sysprotects]
                            WHERE  [id] = @ObjectID
                                   AND [uid] = @DatabaseUserID
                                   AND [action] = 26
                                   AND [protecttype] = 206)
                    SET @msgStatement = @msgStatement + 'REFERENCES,';

                  IF LEN(@msgStatement) > 0
                    BEGIN
                        IF RIGHT(@msgStatement, 1) = ','
                          SET @msgStatement = LEFT(@msgStatement, LEN(@msgStatement) - 1)

                        SET @msgStatement = 'DENY' + CHAR(13) + CHAR(9) + @msgStatement + CHAR(13) 
                                          + CHAR(9) + 'ON ' + @ObjectName + CHAR(13) + CHAR(9) + 'TO ' 
                                          + @DatabaseUserName + ';' ;

                        PRINT @msgStatement;
                    END

                  FETCH NEXT FROM _sysobjects INTO @ObjectID, @ObjectName;
              END

            CLOSE _sysobjects;

            DEALLOCATE _sysobjects;
            
         

            PRINT 'GO'
        END 


      SET NOCOUNT OFF

      RETURN 0

            運(yùn)行結(jié)果實(shí)例如下:

       EXEC [p_user_permissions_script_get] 'dbo'



      --Security creation script for user sa
      --Created At: 01 13 2012  4:37PM163729
      --Created By: sa
      --Add User To Database
      USE [DB_TEST]
      EXEC [sp_grantdbaccess]
          @loginame = 'sa',
          @name_in_db = 'dbo';
      GO
      --Add User To Roles
      EXEC [sp_addrolemember]
          @rolename = 'db_owner',
          @membername = 'dbo';
      --Set Database level Permissions
      GRANT
          CONNECT
          TO dbo;
      GO
      --Set Object Specific Permissions
      GO
      posted @ 2012-01-13 16:46  .NET快速開發(fā)框架  閱讀(2417)  評(píng)論(5)    收藏  舉報(bào)
      主站蜘蛛池模板: 中文字幕日韩精品有码| 最近中文字幕国产精品| 成人一区二区三区在线午夜| 小污女小欲女导航| 粉嫩一区二区三区国产精品| 久久精品国产亚洲av天海翼| 国产AV福利第一精品| 国产精品黄色片| 91精品国产吴梦梦在线观看永久| 狠狠躁夜夜躁人人爽天天69| 国产人妻人伦精品1国产丝袜| 男人扒开添女人下部免费视频| 含紧一点h边做边走动免费视频| 激情亚洲专区一区二区三区| 丰满人妻熟妇乱精品视频| 一本大道久久香蕉成人网| 久久久精品2019中文字幕之3| 国产精品一二三区久久狼| 久久国产乱子精品免费女| 亚洲国产精品无码一区二区三区| 久久av无码精品人妻系列试探| 亚洲无线码中文字幕在线| 亚洲色大成网站WWW久久| 成人国产精品中文字幕| 人人妻人人澡人人爽曰本| 光棍天堂在线手机播放免费| 日本激情久久精品人妻热| 日韩激情一区二区三区| 亚洲av一本二本三本| 最新国产精品拍自在线观看| √天堂中文www官网在线| 绯色蜜臀av一区二区不卡| 中文www天堂| 男人用嘴添女人私密视频| 精品麻豆国产色欲色欲色欲WWW| 好爽毛片一区二区三区四| 国产精品va在线观看无码不卡| 韩国av无码| 亚洲精品美女一区二区| 精品精品亚洲高清a毛片| 99re6这里有精品热视频 |