Forum

Sınırlı süreli...
 
Bildirimler
Hepsini Temizle

Sınırlı süreli kullanıcı

4 Yazılar
2 Üyeler
0 Reactions
677 Görüntüleme
(@erensametcunbul)
Gönderiler: 52
Trusted Member
Konu başlatıcı
 

Merhabalar,

 

Bir database'de bir kullanıcıya sınır sürede geçerlilik vermek istiyorum.  1 ay sonra userı silecek veya disable edecek. 

 

Aklıma bir job ile kullanıcıya ait tüm sessionları kill edip, şifresini değiştirmek geliyor ama ne kadar sağlıklı emin olamadım. Fikirlerini almak istedim.

 
Gönderildi : 29/08/2018 13:32

(@erensametcunbul)
Gönderiler: 52
Trusted Member
Konu başlatıcı
 

şöyle bir sorgu yazdım. İş görüyor gibi.Fikirlerinizi rica ederim.

 

DECLARE @Query NVARCHAR(MAX)
DECLARE QueryCursor CURSOR
FOR
SELECT N'KILL '+ CONVERT(VARCHAR(11), session_id) + N';' FROM sys.dm_exec_sessions WHERE login_name = 'Login_Name'
OPEN QueryCursor
FETCH NEXT FROM QueryCursor INTO @Query
WHILE @@FETCH_STATUS = 0
BEGIN
--PRINT @Query
EXEC sp_executesql @Query
FETCH NEXT FROM QueryCursor INTO @Query
END
CLOSE QueryCursor
DEALLOCATE QueryCursor

alter login Login_Name with password = 'Login_Name'

 
Gönderildi : 29/08/2018 13:42

(@cankaya)
Gönderiler: 119
Üye
 

Merhaba,

Sunucunuz domainde ise ve siz kullanıcıları domainden yetkilendiriyorsanız bu işi domain controller üzerinde yapmak daha akıllıca.

Ancak sql server user söz konusu ise disable etmek için processlerini kill etmenize gerek yok. Direk disable edebilirsiniz. Bir SQL Agent job la bu işi otomatize hale getirebilirsiniz. 

disable etmek için bu yeterlidir. 

USE [master]
GO
DENY CONNECT SQL TO [Login_Name ]
GO
ALTER LOGIN [Login_Name ] DISABLE
GO

 

ancak aktif olarak oturumu açıksa kullanıcının paylaşmış olduğunuz kod blogu işinizi görecektir. Bir cursorla tüm sessionlarını öldürüp kullanıcıyı silebilirsiniz. 

 

Şifresini değiştirmeniz için açık sessionları kill etmenize gerek yok. Silmek için aşağıdaki değişikliği yapmanız yeterli olacaktır

 

alter login Login_Name with password = 'Login_Name'

bu kodu 

DROP LOGIN [Login_Name ]

 

 

 
Gönderildi : 29/08/2018 13:48

(@erensametcunbul)
Gönderiler: 52
Trusted Member
Konu başlatıcı
 

Cevabını için teşekkür ederim Can bey,

 

Sunucu tarafımıza ait değil, sql yönetimini ben yapıyorum sadece. Domain benim tarafımda olsa kullanıcıya expire date verebilirim çok rahatlıkla. 

 
Gönderildi : 29/08/2018 13:59

Paylaş: