PDA

View Full Version : سوال: ایجاد User در Login از SQL Server و تغییر Password در کدنویسی



ROSTAM2
چهارشنبه 10 مرداد 1403, 08:58 صبح
سلام به همه

من می خوام از طریق کدنویسی VB .Net برای SQL Server Authentication در Security\Login حساب کاربری با رمز عبور دلخواهم رو ایجاد کنم.
با چه دستوراتی می شه کدهای TSQL رو در کدنویسی اجرا کرد و اگر راه ساده تری هست راهنمایی بفرمائید....

155920

ROSTAM2
چهارشنبه 10 مرداد 1403, 09:04 صبح
آیا با این روش می شه UserName برای Logins از SQL Server Authentication ایجاد کرد؟


Dim connection As SqlConnection
connection = New SqlConnection("Data Source=myServerAddress;" & _
"Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;")
Dim command As SqlCommand
command = connection.CreateCommand()
command.CommandText = "ALTER DATABASE test SET ENABLE_BROKER"
command.ExecuteNonQuery()

ROSTAM2
چهارشنبه 10 مرداد 1403, 09:29 صبح
پیداش کردم

باید حتما با sa یا یک username که دسترسی کامل به sql server داره متصل شد....


Dim connection As SqlConnection
connection = New SqlConnection("Data Source=.;" & _
"Initial Catalog=AppStoreDatabase;User Id=sa;Password=*******;")
Dim command As SqlCommand
connection.Open()
command = connection.CreateCommand()
command.CommandText = "CREATE LOGIN " + Me.TextBox1.Text + " With PASSWORD = N'" + Me.TextBox2.Text + "', CHECK_POLICY = OFF, CHECK_EXPIRATION = OFF;"
command.ExecuteNonQuery()

ROSTAM2
چهارشنبه 10 مرداد 1403, 09:33 صبح
پیداش کردم

باید حتما با sa یا یک username که دسترسی کامل به sql server داره متصل شد....


Dim connection As SqlConnection
connection = New SqlConnection("Data Source=.;" & _
"Initial Catalog=AppStoreDatabase;User Id=sa;Password=*******;")
Dim command As SqlCommand
connection.Open()
command = connection.CreateCommand()
command.CommandText = "CREATE LOGIN " + Me.TextBox1.Text + " With PASSWORD = N'" + Me.TextBox2.Text + "', CHECK_POLICY = OFF, CHECK_EXPIRATION = OFF;"
command.ExecuteNonQuery()


اما یک مشکل دارم. برای معرفی دیتابیس به USERNAME باید چه دستوری بنویسم؟! (User Mapping)

ROSTAM2
چهارشنبه 10 مرداد 1403, 09:42 صبح
این هم برای اضافه کردن دیتابیس به User Mapping :


command = connection.CreateCommand()
command.CommandText = "alter authorization on database::AppStoreDatabase to " + Me.TextBox1.Text + ";"
command.ExecuteNonQuery()

ROSTAM2
چهارشنبه 10 مرداد 1403, 11:59 صبح
برای ایجاد تغییرات برای UserName در Logins از SQL Server:

فعال کردن یک حساب کاربری (برای غیر فعال کردن از DISABLE استفاده می شود):

ALTER LOGIN Mary5 ENABLE;


تغییر پسورد یک لاگین:

ALTER LOGIN Mary5 WITH PASSWORD = '<enterStrongPasswordHere>';


ALTER LOGIN Mary5 WITH PASSWORD = '<enterStrongPasswordHere>' OLD_PASSWORD = '<oldWeakPasswordHere>';


تغییر نام Login:

ALTER LOGIN Mary5 WITH NAME = John2;


برای باز کردن قفل ورود به SQL Server، عبارت زیر را اجرا کنید و رمز عبور حساب مورد نظر را جایگزین **** کنید.

ALTER LOGIN [Mary5] WITH PASSWORD = '****' UNLOCK ;
GO

برای باز کردن قفل ورود بدون تغییر پسورد:

ALTER LOGIN [Mary5] WITH CHECK_POLICY = OFF;
ALTER LOGIN [Mary5] WITH CHECK_POLICY = ON;
GO


ALTER LOGIN (Transact-SQL) - SQL Server | Microsoft Learn (https://learn.microsoft.com/en-us/sql/t-sql/statements/alter-login-transact-sql?view=sql-server-ver16)

ROSTAM2
چهارشنبه 10 مرداد 1403, 18:23 عصر
دستور بدست آوردن نام Logins فعال:


command.CommandText = "SELECT * from sys.sql_logins"
For Each Item As System.Data.Common.DbDataRecord In command.ExecuteReader()
If Item("is_disabled") = True Then Continue For
Debug.Print(Item("name"))
Next