我將與主database.Table中包含用戶名(相同的名稱,登錄)單個表和日子裏,他們有機會獲得
create table usersacess
(
username varchar(30),
accessdays char(10)
)
insert into usersacess
select 'testlogin1','sunday'
union all
select 'testlogin','monday'
union all
select 'testlogin','tuesday'
去一旦你有了上述信息,你需要創建一個登錄觸發器,您可以選擇登錄到DB以及..
alter TRIGGER connection_limit_trigger
ON ALL SERVER with execute as 'sa'
FOR LOGON
AS
BEGIN
if exists(select 1 from usersacess where username=original_login())
begin
if not exists(select 1 from usersacess where username=ORIGINAL_LOGIN() and accessdays=datename(dw,getdate()))
begin
rollback;
end
end
END;
幾點要注意:
1.with作爲SA執行很重要,因爲某些登錄可能無法讀取用戶訪問表
2.首先確認我們沒有檢查所有用戶
3.用戶訪問表中的登錄名應該匹配與用戶
創建現在,如果你嘗試測試,testlogin1只能訪問的今天,因爲它是星期天
感謝您的評論原來的名稱。但在這裏,我希望平日訪問的業務邏輯,而不是存儲密碼。我只是創建了一個表格,以方便。請關注主要問題。謝謝! – nischalinn
感謝您的建議。如果您有任何問題的解決方案,請回復。這將非常感激。 – nischalinn
一種方法是在您的數據庫中添加2個表格: 一個將保存星期幾,一個將加入用戶和工作日。 –