عضویت در سایت

ورود

فراموشی رمز عبور

رمز عبور خود را فراموش کرده اید؟ ایمیل خود را وارد کنید

ورود

عضویت در سایت

نحوه ی ایجاد لاگین و دادن دسترسی به یوزر در دیتابیس

با سلام و احترام خدمت همکاران گرامی
1 . جهت افزودن یک کاربر به یک دیتابیس و اختصاص دسترسی‌های موردنظر، ابتدا باید از طریق بخش Security در SQL Server Management Studio، بر روی گزینه Logins راست‌کلیک کرده و گزینه New Login را انتخاب نمایید .
2. در پنجره بازشده، نام لاگین موردنظر (به‌عنوان مثال h.talebi) را وارد نموده، گزینه SQL Server authentication را انتخاب کرده و رمز عبور مربوطه را تعیین نمایید.
در صورتی که تمایل دارید کاربر پس از اولین ورود ملزم به تغییر رمز عبور خود باشد، گزینه Enforce password expiration را فعال نگه دارید؛ در غیر این صورت می‌توانید تیک این گزینه را غیرفعال نمایید.

3. پس از ایجاد لاگین، جهت اختصاص دسترسی به یک دیتابیس خاص، وارد دیتابیس موردنظر شده، از مسیر:
Database → Security → Users
بر روی گزینه Users راست‌کلیک کرده و New User را انتخاب نمایید.

4. در پنجره مربوطه، نام لاگین ایجادشده را در قسمت Login name وارد کرده و نام کاربر (User name) را تعیین نمایید. همچنین در قسمت Default schema، معمولاً بهتر است مقدار dbo را قرار دهید. سپس در تب Membership، نقش‌ها و سطح دسترسی‌های موردنظر را انتخاب کرده و در نهایت تغییرات را ذخیره نمایید.

به طور مثال، اگر قصد دارید به یک کاربر در تمامی دیتابیس‌های موجود، دسترسی خواندن و نوشتن (db_datareader و db_datawriter) را اختصاص دهید، برای جلوگیری از انجام این فرآیند به‌صورت دستی و تکراری، می‌توانید از قطعه کد زیر استفاده نمایید. توجه داشته باشید که باید لاگین را حتما ایجاد کرده باشید. (مراحل 1 و 2)
DECLARE @Users TABLE (UserName sysname)

INSERT INTO @Users VALUES
(‘h.talebi’)

–تعداد بیشتر کاربر را هم میتوانید اضافه نمایید

DECLARE @DBName sysname
DECLARE @SQL nvarchar(max)

DECLARE db_cursor CURSOR FOR
SELECT name
FROM sys.databases
WHERE database_id > 4
AND state_desc = ‘ONLINE’

OPEN db_cursor
FETCH NEXT FROM db_cursor INTO @DBName

WHILE @@FETCH_STATUS = 0
BEGIN

SET @SQL = ‘
USE [‘ + @DBName + ‘];

SELECT @SQL = @SQL + ‘
IF NOT EXISTS (
SELECT 1
FROM sys.database_principals
WHERE name = ”’ + UserName + ”’
)
BEGIN
CREATE USER [‘ + UserName + ‘] FOR LOGIN [‘ + UserName + ‘];
END;

ALTER ROLE db_datareader ADD MEMBER [‘ + UserName + ‘];
ALTER ROLE db_datawriter ADD MEMBER [‘ + UserName + ‘];


FROM @Users

BEGIN TRY
EXEC sp_executesql @SQL
PRINT ‘Database [‘ + @DBName + ‘] Done’
END TRY
BEGIN CATCH
PRINT ‘Database [‘ + @DBName + ‘] Error: ‘ + ERROR_MESSAGE()
END CATCH

FETCH NEXT FROM db_cursor INTO @DBName
END

CLOSE db_cursor
DEALLOCATE db_cursor

درباره haniyeh.talebiعضو فعال

ارسال نظر

با تیک زدن این دکمه شما قوانین و مقررات و حریم خصوصی را پذیرفته اید.