將SQL 帳號設成強制執行密碼逾期通知時,需要在時間到期前更新密碼,否則應用程式會。。。。。。GG
聽到同事和客戶的對話,因為SQL帳號密碼逾期,導致Web出錯,的確,誰會記得SQL帳號要不要改密碼了呀.....
我金魚腦。。。記不得太久的事。。。哈。。。所以查了一下如何取得即將逾期的帳號,把它取出來。。。
可以將資料搭配郵件寄送通知運用,當然啦。。。這裡只筆記如何查出列表囉
有了帳號和即將逾期天數,IT人員即可拿來運用,看是要排個Mail通知或者寫張報表跑(報表沒去跑。。。當然一樣時間到了停用才想到。。。。)
即將逾期天數如果是0,表示帳號已逾期了。。。GG了
Create Procedure CheckExpriaton
/*======================================================
建立人員:打雜妹
建立日期:2019-01-24
撰寫原因:找出SQL帳號密碼即將逾期天數列表
exec CheckExpriaton
*/
as
begin
Declare @Login varchar(100)
Declare @expiration sql_variant
Declare @Check int
Declare @DuyDays int --覺得幾天前要通知就設這吧....咱們預設個7天
set @DuyDays=7 --找出七天內將逾期的帳號
if object_id('tempdb.dbo.#tblexpiration') is not null
drop table #tblexpiration
Create table #tblexpiration
(
AccountName varchar(100) --SQL 帳號
,Expiration int --即將逾期天數
)
--=================================
-- 查詢設定密碼逾期的登入帳號
--取得有設密碼到期的
DECLARE myCursor CURSOR FOR
SELECT name
FROM sys.sql_logins
WHERE (type = 's') AND (is_expiration_checked = 1)
OPEN myCursor
FETCH NEXT FROM myCursor INTO @Login
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @expiration=LOGINPROPERTY(@Login, 'DaysUntilExpiration')
insert #tblexpiration
Select @Login,Convert(int,@expiration)
FETCH NEXT FROM myCursor INTO @Login
end;
CLOSE myCursor
DEALLOCATE myCursor
select *
from #tblexpiration
where Expiration<@DuyDays
if object_id('tempdb.dbo.#tblexpiration') is not null
drop table #tblexpiration
end;
打雜打久了,就變成打雜妹
程式寫久了,就變成老乞丐