1. 程式人生 > >整理 SQL 資料庫匯出遷移使用者賬戶及許可權

整理 SQL 資料庫匯出遷移使用者賬戶及許可權

/*
--SQL 資料庫匯出遷移使用者賬戶及許可權
--EG. [sp_help_revlogin]
*/

--sp_hexadecimal
   USE master
GO
IF OBJECT_ID ('sp_hexadecimal') IS NOT NULL
  DROP PROCEDURE sp_hexadecimal
GO
CREATE PROCEDURE sp_hexadecimal
    @binvalue varbinary(256),
    @hexvalue varchar(256) OUTPUT
AS
DECLARE @charvalue varchar(256)
DECLARE @i int
DECLARE @length int
DECLARE @hexstring char(16)
SELECT @charvalue = '0x'
SELECT @i = 1
SELECT @length = DATALENGTH (@binvalue)
SELECT @hexstring = '0123456789ABCDEF'
WHILE (@i <= @length)
BEGIN
  DECLARE @tempint int
  DECLARE @firstint int
  DECLARE @secondint int
  SELECT @tempint = CONVERT(int, SUBSTRING(@binvalue,@i,1))
  SELECT @firstint = FLOOR(@tempint/16)
  SELECT @secondint = @tempint - (@firstint*16)
  SELECT @charvalue = @charvalue +
    SUBSTRING(@hexstring, @firstint+1, 1) +
    SUBSTRING(@hexstring, @secondint+1, 1)
  SELECT @i = @i + 1
END
SELECT @hexvalue = @charvalue
GO

----- sp_help_revlogin

IF OBJECT_ID ('sp_help_revlogin') IS NOT NULL
  DROP PROCEDURE sp_help_revlogin
GO
CREATE PROCEDURE [dbo].[sp_help_revlogin] @login_name sysname = NULL AS  
    DECLARE @name sysname  
    DECLARE @type varchar (1)  
    DECLARE @hasaccess int  
    DECLARE @denylogin int  
    DECLARE @is_disabled int  
    DECLARE @PWD_varbinary  varbinary (256)  
    DECLARE @PWD_string  varchar (514)  
    DECLARE @SID_varbinary varbinary (85)  
    DECLARE @SID_string varchar (514)  
    DECLARE @tmpstr  varchar (1024)  
    DECLARE @is_policy_checked varchar (3)  
    DECLARE @is_expiration_checked varchar (3)  
    DECLARE @defaultdb sysname  
    IF (@login_name IS NULL)  
    DECLARE login_curs CURSOR FOR  
    SELECT p.sid, p.name, p.type, p.is_disabled, p.default_database_name, l.hasaccess, l.denylogin FROM  
    sys.server_principals p LEFT JOIN sys.syslogins l  
    ON ( l.name = p.name ) WHERE p.type IN ( 'S', 'G', 'U' ) AND p.name <> 'sa'  
    ELSE  
    DECLARE login_curs CURSOR FOR  
    SELECT p.sid, p.name, p.type, p.is_disabled, p.default_database_name, l.hasaccess, l.denylogin FROM  
    sys.server_principals p LEFT JOIN sys.syslogins l  
    ON ( l.name = p.name ) WHERE p.type IN ( 'S', 'G', 'U' ) AND p.name = @login_name  
    OPEN login_curs  
    FETCH NEXT FROM login_curs INTO @SID_varbinary, @name, @type, @is_disabled, @defaultdb, @hasaccess, @denylogin  
    IF (@@fetch_status = -1)  
    BEGIN  
    PRINT 'No login(s) found.'  
    CLOSE login_curs  
    DEALLOCATE login_curs  
    RETURN -1  
    END  
    SET @tmpstr = '/* sp_help_revlogin script '
    PRINT @tmpstr  
    SET @tmpstr = '** Generated ' + CONVERT (varchar, GETDATE()) + ' on ' + @@SERVERNAME + ' */'  
    PRINT @tmpstr  
    PRINT ''  
    WHILE (@@fetch_status <> -1)  
    BEGIN  
    IF (@@fetch_status <> -2)  
    BEGIN  
    PRINT ''  
    SET @tmpstr = '-- Login: ' + @name  
    PRINT @tmpstr  
    IF (@type IN ( 'G', 'U'))  
    BEGIN -- NT authenticated account/group  
    SET @tmpstr = 'CREATE LOGIN ' + QUOTENAME( @name ) + ' FROM WINDOWS WITH DEFAULT_DATABASE = [' + @defaultdb + ']'  
    END  
    ELSE BEGIN -- SQL Server authentication
    SET @PWD_varbinary = CAST( LOGINPROPERTY( @name, 'PasswordHash' ) AS varbinary (256) )  
    EXEC sp_hexadecimal @PWD_varbinary, @PWD_string OUT  
    EXEC sp_hexadecimal @SID_varbinary,@SID_string OUT
   SELECT @is_policy_checked = CASE is_policy_checked WHEN 1 THEN 'ON' WHEN
0 THEN 'OFF' ELSE NULL END FROM sys.sql_logins WHERE name = @name  

    SELECT @is_expiration_checked = CASE is_expiration_checked WHEN 1 THEN 'ON' WHEN
0 THEN 'OFF' ELSE NULL END FROM sys.sql_logins WHERE name = @name  

    SET @tmpstr = 'CREATE LOGIN ' + QUOTENAME( @name ) + ' WITH PASSWORD = ' + @PWD_string + ' HASHED,
    SID = ' + @SID_string + ', DEFAULT_DATABASE = [' + @defaultdb + ']'  

    IF ( @is_policy_checked IS NOT NULL )  
    BEGIN  
    SET @tmpstr = @tmpstr + ', CHECK_POLICY = ' + @is_policy_checked  
    END  
    IF ( @is_expiration_checked IS NOT NULL )  
    BEGIN  
    SET @tmpstr = @tmpstr + ', CHECK_EXPIRATION = ' + @is_expiration_checked  
    END  
    END  
    IF (@denylogin = 1)  
    BEGIN -- login is denied access  
    SET @tmpstr = @tmpstr + '; DENY CONNECT SQL TO ' + QUOTENAME( @name )  
    END  
    ELSE IF (@hasaccess = 0)  
    BEGIN -- login exists but does not have access  
    SET @tmpstr = @tmpstr + '; REVOKE CONNECT SQL TO ' + QUOTENAME( @name )  
    END  
    IF (@is_disabled = 1)  
    BEGIN -- login is disabled  
    SET @tmpstr = @tmpstr + '; ALTER LOGIN ' + QUOTENAME( @name ) + ' DISABLE'  
    END  
    PRINT @tmpstr  
    END  
    FETCH NEXT FROM login_curs INTO @SID_varbinary, @name, @type, @is_disabled, @defaultdb, @hasaccess, @denylogin  
    END  
    CLOSE login_curs  
    DEALLOCATE login_curs  
    RETURN 0

相關推薦

整理 SQL 資料庫匯出遷移使用者賬戶許可權

/* --SQL 資料庫匯出遷移使用者賬戶及許可權 --EG. [sp_help_revlogin] */ --sp_hexadecimal    USE master GO IF OBJECT_ID ('sp_hexadecimal') IS NOT NULL   DRO

遷移MySQL使用者許可權

先建立使用者 CREATE USER 'username'@'host' IDENTIFIED BY 'PASSWORD'; 匯出 [[email protected] tmp]# mysql -B -N -uroot -p -e "SELECT CONC

BCP SQL匯出EXCEL常見問題解決方法;資料匯出儲存過程

一、‘xp_cmdshell’的啟用 SQL Server阻止了對元件‘xp_cmdshell’的過程‘sys.xp_cmdshell’的訪問。因為此元件已作為此服務囂安全配置的一部分而被關 閉。系統管理員可以通過使用sp_configure啟用‘xp_cmdshell’。有關啟用‘xp_cmdshell’

資料庫知識整理 - 關係資料庫標準語言SQL(二)- 超良心的資料查詢整理

主要內容 資料查詢 基本語法 單表查詢 1. 選擇表中的若干列 2. 選擇表中的若干元組 3. ORDER BY子句 4. 聚集函式 5. GROUP BY子句 連線查詢 1. 等值與非等值連線查詢 2. 自身連線 3. 外

SQL Server2017還原資料庫時指定mdf檔案日誌檔案的名稱

由於需要還原同一個資料庫的不同備份到不同資料庫中,可是在還原的時候,可是在指定目標資料庫時,填寫不同的資料庫名稱,在SQL Server Data資料夾中生成的.mdf檔案還是同一個,如圖,雖然是很簡單的一個操作,在這裡記錄一下,以防忘記。 折騰了半天。之前記得可以把資料庫分離,然後直接修改mdf檔案,

Oracle SQL Develope匯出資料庫連線

哎  , 因為換了電腦,oracle sql develope裡的連線資訊, 也需要匯出來, 由於比較多, 在網上找 匯出資料庫連線的方法,然而沒有找到, 所以直接全部一個個的 連線資訊手動有加了進去。 然而加完了 , 偶爾發現了匯出資訊的方法, what a fuck! 線面介紹方法

android開發環境-- 1 夜神模擬器連線資料庫匯出

啟動夜神模擬器的開發者選項 進入螢幕上的[設定],如圖 2,進入[關於平板電腦],如圖   3,點選5次[版本號] 4,退回到[設定]目錄,會看到[開發者選項],如圖 5,進入[開發者選項],選中[USB除錯],或選擇其他需要選項,如圖

【MyCat】通過mycat實現mysql資料庫的分庫分表sql防火牆配置

前言:隨著業務的不斷髮展,不論你怎麼優化程式碼和負載均衡,都不得不面對資料庫效能的瓶頸,為了讓資料庫的效能得到極大改善,除了優化Mysql本身的配置,以及SQL語句和索引等優化,更重要的就是對現有資料庫進行合理拆分,然後分佈在不同的伺服器上,以減輕單個伺服器的IO壓力,本篇就

2018-Asp.net-MVC4教學 Linq,原生Sql資料庫相關技術的應用比較

主要步驟如下:A.建立資料庫SpaceSchool資料庫。資料中有兩張表和一個檢視,建立程式碼是:USE [SpaceSchool] GO /****** 物件: Table [dbo].[Formteacher] 指令碼日期: 2018/4/23 星期一 17:05:45

SQL SERVER 資料庫匯出表設計

參考文章:https://jingyan.baidu.com/article/27fa73269e3ef046f9271f79.html 當我們需要重複利用某個表的表結構設計,或者是想刪除整個資料庫中的資料,快速建立新的空值資料庫時,會考慮到把表設計匯出為指令碼進行使用,便於共享傳遞,並支援不同

SQL server 資料庫匯出表裡所有資料成insert 語句

        將SQL server資料庫中的某張表裡的所有資料匯入到另外一個數據庫或另外一臺計算機上的資料庫,有這樣的一種方法: 下面我以sql server 2008 R2,資料庫是[test]資料庫為例。 目標:把[test]資料庫的 Test_T

[資料庫] SQL查詢語句錶行列轉換一行資料轉換成兩列

本文主要講述了SQL查詢語句表之間的行列轉換,同時也包括如何將一行資料轉換成兩列資料的方法、子查詢的應用、decode函式的用法。希望文章對你有所幫助~ 1.建立資料庫表及插入資料2.子查詢統計不同性質的學生總數3.一行資料轉換成兩列資料 union all4.錶行列資料轉

SQL Server 2008 中 新建登入使用者 並指定該使用者登入的資料庫許可權

一、實驗環境 Windows 7 SQL Server 2008 資料庫例項名為 TestDB,新建的使用者名稱為 testUser 二、操作步驟 1、開啟 SQL Server Management Studio,以 Windows身份認證方式登入 2、在物件資源管理器

利用PL/SQL工具匯出、匯入資料庫、檢視、解發器等

匯出 1、以“Normal”登入資料庫 2、tools--> Export tables-->選定要匯出的表(預設匯出當前使用者所有表)-->選定匯出路徑-->Export-->等待完成。 3、tools-->Export User

Linux下安裝操作SQL資料庫

——————————————————————————————————————— 主機作業系統:Centos 6.7 安裝配置:SQL資料庫郵箱:[email protected]——

pl/sql developer 匯出資料庫中的表到可執行的.sql 指令碼檔案

PL/SQL自帶匯出資料庫中表到.sql指令碼檔案的工具。 1.在objects視窗中,選中表》右擊》Export Data 2.選》SQL Inserts 選擇:Create tables,其他選項看情況選擇。 3.Output file:選擇輸出路徑及檔名。 4

sql查詢某個資料庫裡所有表名表資訊

sql server 數表: select count(1) from sysobjects where xtype=’U’ 數檢視: select count(1) from sysobject

常用SQL語句例項(含過濾刪除重複資料、匯入匯出資料等)

本文整理一些常用的SQL語句例項(如過濾重複資料、刪除重複資料、匯入匯出資料等),收藏備用,不斷更新中……。歡迎訪問作者網站獲取最新版:http://hi.wonsoft.cn -------------------------------第一部份 高階技巧-------

資料庫遷移至SQLiteSQLite常用命令

Oracle遷移至SQLite 1. 從PL/SQL 中查詢你要的資料,然後匯出成CSV格式檔案; 也可以使用指令碼進行匯出CSV檔案,具體如下: --set colsep ' || '; set echo off; set feedback off; --禁止顯示最後一行的計數反

資料庫遷移必備--遷移登入賬戶

背景 DBA 經常會遇到的一個場景就是資料庫的遷移,把資料庫從A伺服器遷移到B伺服器。在資料庫完成遷移後,我們還需要把相關的其他一些伺服器級別的物件遷移過去,比如作業,登入賬戶,連結伺服器等。今天主要分享匯出登入賬戶的指令碼 正文 ---SQL 2005以上版本適用