zoukankan      html  css  js  c++  java
  • sp获取用户角色,打印出批量给用户分配角色的语句

    ALTER PROCEDURE [dbo].[usp_ShowUserRole]
    AS
    BEGIN
    DECLARE @px INT = 0
    DECLARE @dbname VARCHAR(max)
    DECLARE @sql VARCHAR(MAX)
    IF OBJECT_ID('tempdb..#dbs', 'U') IS NOT NULL
    DROP TABLE #dbs
    IF OBJECT_ID('tempdb..#userRole', 'U') IS NOT NULL
    DROP TABLE #userRole
    IF OBJECT_ID('tempdb..#execsql', 'U') IS NOT NULL
    DROP TABLE #execsql
    CREATE TABLE #userRole
    (
    id INT IDENTITY(1, 1) ,
    dbname VARCHAR(60) ,
    [user] VARCHAR(60) ,
    userRole VARCHAR(60)
    )
    CREATE TABLE #execsql
    (
    id INT IDENTITY(1, 1) ,
    esql VARCHAR(200)
    )
    SELECT id = IDENTITY( INT ,1,1 ),
    name
    INTO #dbs
    FROM master.sys.databases db
    WHERE db.database_id > 4
    AND db.name NOT IN ( 'dbcenter','ReportServer','ReportServerTempDB','TargetDB','InitiatorDB' )
    WHILE ( @px < ( SELECT MAX(id)
    FROM #dbs
    ) )
    BEGIN
    SELECT TOP 1
    @dbname = #dbs.name
    FROM #dbs
    SET @sql = 'use ' + @dbname + ' SELECT ' + '''' + @dbname
    + ''''
    + ' as ''dbname'', a.name as ''user'' ,c.name as ''userRole'' from '
    + @dbname + '.sys.sysusers a inner join ' + @dbname
    + '.sys.sysmembers b ON a.uid = b.memberuid inner join '
    + @dbname
    + '.sys.database_principals c ON b.groupuid = c.principal_id where a.name not in (''dbo'',''sys'')'
    INSERT INTO #userRole
    EXEC ( @sql
    )

    SET @px = @px + 1
    DELETE #dbs WHERE name = @dbname
    END
    --SELECT * FROM #userRole
    INSERT INTO #execsql
    SELECT 'use ' + dbname + ' exec sp_addrolemember '
    + userRole + ',' + [user]
    FROM #userRole
    SELECT *
    FROM #execsql

    END

  • 相关阅读:
    springmvc,springboot单元测试配置
    uboot中ftd命令
    在根文件系统中查看设备树(有助于调试)
    协议类接口
    网络设备接口
    块设备驱动框架
    i2c子系统
    触摸屏
    input子系统
    原子访问、自旋锁、互斥锁、信号量
  • 原文地址:https://www.cnblogs.com/sandra/p/4835071.html
Copyright © 2011-2022 走看看