MSDE FunClub | 最終更新日 : 2000/08/22 | |
Microsoft Data Engine FunClub |
|
|
SQLServer7.0/MSDE 完全トレーニングテキスト(下巻) | ||
【第12章148p 〜 150p掲載】 |
-- [SQL12_08.SQL] -- SQLServer7.0 Transact-SQL言語 -- 日本技術ソフト開発 堀川 明 -- http://www.horikawa.ne.jp/msde/ -- -- 【ログインの一括削除処理】 -- -- 不要になったログインを一括して削除します -- システム管理者の方に、このSQL文を実行して頂きましょう -- SELECT文などの実行によって、( 件処理されました)の表示抑制 SET NOCOUNT ON GO -- *************************************************** -- 現在実行している人のログインセキュリティのチェック -- *************************************************** DECLARE @F_SYSADMIN int , @F_SECUADMIN int -- サーバーロールsysadminに、あなたは所属していますか? SELECT @F_SYSADMIN = IS_SRVROLEMEMBER( 'sysadmin' ) -- サーバーロールsecurityadminに、あなたは所属していますか? SELECT @F_SECUADMIN = IS_SRVROLEMEMBER( 'securityadmin' ) IF( (@F_SYSADMIN=0) AND (@F_SECUADMIN=0) ) BEGIN -- 127番にすると、osqlやisqlではスクリプト強制終了です RAISERROR( '残念ですがログイン削除の権限がありません',16,127) RETURN END GO -- *********************************************************** -- ログイン一括削除を行なうテーブルの定義とレコードの登録 -- *********************************************************** CREATE TABLE #LOGIN_LIST ( lognm sysname -- 削除を行なうログイン名 ) --ログイン削除リストの定義 INSERT INTO #LOGIN_LIST VALUES ( 'Guest01' ) INSERT INTO #LOGIN_LIST VALUES ( 'Guest02' ) INSERT INTO #LOGIN_LIST VALUES ( 'Guest03' ) INSERT INTO #LOGIN_LIST VALUES ( 'Guest04' ) INSERT INTO #LOGIN_LIST VALUES ( 'Guest05' ) INSERT INTO #LOGIN_LIST VALUES ( 'Guest06' ) INSERT INTO #LOGIN_LIST VALUES ( 'Guest07' ) INSERT INTO #LOGIN_LIST VALUES ( 'Guest08' ) INSERT INTO #LOGIN_LIST VALUES ( 'sa2' ) INSERT INTO #LOGIN_LIST VALUES ( 'JTSD3\nm01' ) INSERT INTO #LOGIN_LIST VALUES ( 'JTSD3\nm02' ) INSERT INTO #LOGIN_LIST VALUES ( 'JTSD3\nm03' ) INSERT INTO #LOGIN_LIST VALUES ( 'JTSD3\nm04' ) INSERT INTO #LOGIN_LIST VALUES ( 'JTSD3\nm05' ) INSERT INTO #LOGIN_LIST VALUES ( 'JTSD3\nm06' ) INSERT INTO #LOGIN_LIST VALUES ( 'JTSD3\nm07' ) INSERT INTO #LOGIN_LIST VALUES ( 'JTSD3\nm08' ) INSERT INTO #LOGIN_LIST VALUES ( 'JTSD3\nm09' ) GO -- ************************** -- ログインの一括削除処理 -- ************************** DECLARE @lognm sysname -- ログイン名 --カーソルを定義する DECLARE Log_CUR INSENSITIVE CURSOR FOR SELECT * FROM #LOGIN_LIST FOR READ ONLY -- カーソルを開く OPEN Log_CUR -- 先頭行の読み込み FETCH NEXT FROM Log_CUR INTO @lognm WHILE( @@FETCH_STATUS = 0 ) BEGIN --ログイン名に\記号があればNT認証です IF( CHARINDEX( '\' , @lognm ) = 0 ) EXEC sp_droplogin @lognm --SQLServer認証を削除 ELSE EXEC sp_revokelogin @lognm --NT認証を削除 -- 次行の読み込み FETCH NEXT FROM Log_CUR INTO @lognm END -- カーソルを閉じる CLOSE Log_CUR -- カーソルを破棄する DEALLOCATE Log_CUR -- 一時テーブルを破棄する DROP TABLE #LOGIN_LIST GO