新しいSQLログインの作成をスクリプト化して(Windows認証またはSQLパスワードを使用して)、しばらくすると自動的に期限切れになるようにするにはどうすればよいですか(8時間、24時間など)。
ここでstackoverflowで検索しようとしましたが、解決策が見つかりませんでした。ここにあるものを知っているなら、私にも知らせてください。ありがとうございました。
SQLServer2005および2008を使用しています
新しいSQLログインの作成をスクリプト化して(Windows認証またはSQLパスワードを使用して)、しばらくすると自動的に期限切れになるようにするにはどうすればよいですか(8時間、24時間など)。
ここでstackoverflowで検索しようとしましたが、解決策が見つかりませんでした。ここにあるものを知っているなら、私にも知らせてください。ありがとうございました。
SQLServer2005および2008を使用しています
まず、自動期限切れのログインを保存するためのテーブルを作成します
create table master.dbo.logins(
id int identity primary key clustered,
login_name sysname not null unique,
valid_from datetime not null,
valid_to datetime not null,
check (valid_from < valid_to)
)
GO
SERVER LEVEL LOGONトリガーを作成して、特別なログインをキャプチャしてブロックします。 LOGONトリガーを間違えると、修正するのが不便になるため、慣例としてプレフィックスを特別にテストしていることに注意してください。XPR
CREATE TRIGGER deny_expired_logins
ON ALL SERVER
with execute as 'sa'
FOR LOGON
AS
BEGIN
if original_login() like 'XPR%' and not exists (
select *
from master.dbo.logins
where login_name = original_login()
and GETDATE() between valid_from and valid_to)
rollback
END
GO
新しいログインを作成する必要がある場合は、テーブルにレコードを挿入することを忘れないでください。
create login XPR00001 with password = 'ABCD1234..';
insert master.dbo.logins select 'XPR00001', getdate(), dateadd(hh,8,getdate());