البرمجة

إنشاء قواعد بيانات ومستخدمين في SQL Server

إذا كنت ترغب في إنشاء حلقة تكرار لإنشاء قواعد بيانات ومستخدمين جدد في SQL Server، ثم تعيين هؤلاء المستخدمين إلى القواعد البيانات المناسبة وتعيين الصلاحيات لهم، يمكنك استخدام الشيفرة التالية كنموذج لبدء العمل:

sql
USE [master] GO DECLARE @NameCursor CURSOR; DECLARE @DatabaseName NVARCHAR(50); DECLARE @UserName NVARCHAR(50); DECLARE @LoginName NVARCHAR(50); SET @LoginName = 'niunt'; SET @NameCursor = CURSOR FOR SELECT id FROM test.dbo.Sheet1$; OPEN @NameCursor; FETCH NEXT FROM @NameCursor INTO @DatabaseName; WHILE @@FETCH_STATUS = 0 BEGIN PRINT @DatabaseName; -- Create database DECLARE @CreateDatabaseSQL NVARCHAR(4000); SET @CreateDatabaseSQL = 'CREATE DATABASE [' + @DatabaseName + ']'; EXEC (@CreateDatabaseSQL); -- Create user SET @UserName = @LoginName + '\' + @DatabaseName; DECLARE @CreateUserSQL NVARCHAR(4000); SET @CreateUserSQL = 'CREATE LOGIN [' + @UserName + '] FROM WINDOWS;'; EXEC (@CreateUserSQL); -- Assign user to database DECLARE @AssignUserSQL NVARCHAR(4000); SET @AssignUserSQL = 'USE [' + @DatabaseName + '];' + 'CREATE USER [' + @UserName + '] FOR LOGIN [' + @UserName + '];' + 'ALTER ROLE [db_owner] ADD MEMBER [' + @UserName + '];'; -- Assigning db_owner role as an example, you can change it as needed EXEC (@AssignUserSQL); FETCH NEXT FROM @NameCursor INTO @DatabaseName; END; CLOSE @NameCursor; DEALLOCATE @NameCursor; GO

يرجى ملاحظة أن هذا الكود يفترض أن اسم المستخدم الذي تستخدمه في الدخول (@LoginName) يمكنه إنشاء قواعد بيانات ومستخدمين. إذا كنت تواجه مشاكل في تنفيذ هذا الكود، فقد تحتاج إلى طلب المساعدة من مسؤول قاعدة البيانات الخاصة بك للحصول على الصلاحيات اللازمة.

المزيد من المعلومات

بالطبع، هذا الكود يستخدم متغيرات السيد سير لتكرار عملية إنشاء قاعدة بيانات ومستخدمين جدد. يفترض الكود أن لديك جدولًا يسمى Sheet1$ في قاعدة بيانات test يحتوي على حقول الـ id التي تمثل أسماء القواعد البيانات التي ترغب في إنشائها.

بمجرد تحديد القواعد البيانات وإنشائها، يتم إنشاء مستخدم لكل قاعدة بيانات باستخدام اسم مستخدم مشتق من اسم القاعدة بمساعدة المتغيرات المعرفة مسبقًا. بعد ذلك، يتم تعيين هذا المستخدم إلى القاعدة البيانات المناسبة وتعيين الصلاحيات المطلوبة (في هذه الحالة، تم تعيين دور db_owner كمثال ويمكن تغييرها حسب الاحتياجات).

زر الذهاب إلى الأعلى