خانه - برای مبتدی ها
مایکروسافت sql اضافه کردن کاربر. ایجاد کاربر پایگاه داده ms sql

در مایکروسافت SQL Server، یک مدیر پایگاه داده حساب‌ها را به نمونه‌ای از SQL Server اضافه می‌کند و این حساب‌ها برای کاربران در پایگاه‌های اطلاعاتی جداگانه در نمونه SQL Server نگاشت می‌شوند. کاربران پایگاه داده که جداول و کلاس های شی را ایجاد می کنند باید مجوزهای مناسب برای ایجاد اشیاء در پایگاه داده و طرحواره ای که آن اشیا در آن ایجاد می شوند را داشته باشند. هنگام استفاده در ArcGIS، نام طرحواره باید با نام کاربری پایگاه داده مطابقت داشته باشد.

برای این کار می توانید از ابزار یا اسکریپت پردازش جغرافیایی استفاده کنید ایجاد کاربر پایگاه دادهبرای انجام عملیات زیر:

  • یک حساب کاربری به نمونه SQL Server ایجاد یا اضافه کنید.
  • یک کاربر مربوط به حساب مشخص شده ایجاد کنید.
  • یک طرح نقشه برداری برای یک کاربر در پایگاه داده مشخص شده ایجاد کنید.
  • به کاربر حقوق دسترسی لازم برای ایجاد جداول، کلاس های شی یا نماها در پایگاه داده مشخص شده را اعطا کنید.

کاربری اضافه کنید که بتواند داده ایجاد کند.

می‌توانید ابزار را از ArcGIS برای دسک‌تاپ اجرا کنید یا ابزار را در اسکریپت پایتون فراخوانی کنید تا یک کاربر پایگاه داده ایجاد کنید که بتواند جداول، کلاس‌های ویژگی و نماها را ایجاد کند.

برای اجرای ابزار باید با استفاده از یک حساب کاربری با حقوق مدیر سیستم در نمونه SQL Server به پایگاه داده متصل شوید. ایجاد کاربر پایگاه دادهابزار

اگر می خواهید یک کاربر پایگاه جغرافیایی با یک حساب ویندوز ایجاد کنید، قبل از اجرای ابزار باید حساب مناسب از قبل وجود داشته باشد.

با استفاده از ابزار ایجاد کاربر پایگاه داده

  1. ArcMap یا ArcCatalog را راه اندازی کنید.
  2. با استفاده از حسابی که دارای حقوق سرپرست سیستم در نمونه SQL Server است، به پایگاه داده یا پایگاه جغرافیایی متصل شوید.
  3. ابزار را باز کنید ایجاد کاربر پایگاه داده.

    این ابزار در مجموعه ابزار Geodatabase Administration مجموعه مدیریت داده ها قرار دارد.

  4. اتصال پایگاه داده خود را در فیلد مشخص کنید اتصال به پایگاه داده ورودی.
  5. انتخاب کنید که آیا یک حساب کاربری با احراز هویت SQL Server ایجاد می کنید یا از یک حساب موجود با احراز هویت ویندوز استفاده می کنید.
    • برای ایجاد کاربری با احراز هویت SQL Server علامت آن را بردارید. توجه داشته باشید که به طور پیش فرض، نمونه های SQL Server فقط از احراز هویت ویندوز استفاده می کنند. اگر نمونه شما برای استفاده از احراز هویت SQL Server یا Windows پیکربندی نشده باشد، نمی توانید یک کاربر تأیید شده توسط پایگاه داده ایجاد کنید.
    • بررسی ایجاد یک کاربر با احراز هویت با استفاده از سیستم عامل (Create Operating System Authenticated User)برای استفاده از یک حساب کاربری موجود با احراز هویت ویندوز.
  6. نام کاربر پایگاه داده ای که توسط ابزار ایجاد می شود را وارد کنید.

    اگر بخواهید یک حساب کاربری با احراز هویت SQL Server ایجاد کنید، نامی که وارد می‌کنید نیز برای حساب کاربری استفاده می‌شود.

  7. رمز عبور کاربر پایگاه داده را وارد کنید.
  8. اگر قبلاً نقشی تعریف شده‌اید که می‌خواهید کاربر را به آن اضافه کنید، آن را مشخص کنید.
  9. برای اجرای ابزار روی OK کلیک کنید.

اسکریپت پایتون را اجرا کنید

برای ایجاد کاربر با استفاده از اسکریپت، مراحل زیر را دنبال کنید:

  1. یک فایل متنی روی ماشین کلاینت ArcGIS خود ایجاد کنید و اسکریپت زیر را در فایل کپی کنید.

    """ نام: create_database_user.py توضیحات: اطلاعات اتصال را به کاربر پایگاه داده ارائه دهید. create_database_user.py -h یا create_database_user.py --help را برای استفاده تایپ کنید """ # Import system modules import arcpy import os import optparse import sys # Define usage and version parser = optparse . OptionParser (usage = "usage: %prog " , version = "%prog 1.0 for 10.1 release") #تعریف راهنما و تجزیه کننده گزینه ها add_option ("--DBMS" , dest = "Database_type" , type = "choice" , Choices = [ "SQLSERVER" , "ORACLE" , "POSTGRESQL" , "" ], default = "" , help = "نوع DBMS سازمانی: SQLSERVER، ORACLE، یا POSTGRESQL.") تجزیه کننده add_option ("-i" , dest = "Instance" , type = "string" , default = "" , help = "نام نمونه DBMS" ) تجزیه کننده . add_option("-D" , dest = "Database" , type = "string" , default = "none" , help = "نام پایگاه داده: برای Oracle لازم نیست") تجزیه کننده add_option ("--auth" , dest = "Account_authentication" , type = "choice" , Choices = [ "DATABASE_AUTH" , "OPERATING_SYSTEM_AUTH" ], default = "DATABASE_AUTH" , help = "گزینه های نوع احراز هویت (حساس به حروف کوچک و بزرگ): DATABASE_AUTH، OPERATING_SYSTEM_AUTH. پیش فرض=DATABASE_AUTH") تجزیه کننده add_option ("-U" , dest = "Dbms_admin" , type = "string" , default = "" , help = "کاربر مدیر DBMS" ) تجزیه کننده . add_option ("-P" , dest = "Dbms_admin_pwd" , type = "string" , default = "" , help = "گذرواژه مدیر DBMS" ) تجزیه کننده . add_option ("--utype" , dest = "user_type" , type = "choice" , Choices = [ "DATABASE_USER" , "OPERATING_SYSTEM_USER" ], default = "DATABASE_USER" , help = "گزینه های نوع احراز هویت (حساس به حروف کوچک و بزرگ): DATABASE_USER، OPERATING_SYSTEM_USER. پیش فرض=DATABASE_USER") تجزیه کننده add_option ("-u" , dest = "dbuser" , type = "string" , default = "" , help = "نام کاربری پایگاه داده" ) تجزیه کننده . add_option ("-p" , dest = "dbuser_pwd" , type = "string" , default = "" , help = "گذرواژه کاربر پایگاه داده" ) تجزیه کننده . add_option ("-r" , dest = "role" , type = "string" , default = "" , help = "نقشی که به کاربر اعطا می شود") تجزیه کننده add_option ("-t" , dest = "Tablespace" , type = "string" , default = "" , help = "Tablespace name" ) # بررسی کنید که آیا مقدار برای گزینه وارد شده است try: (گزینه ها، args) = تجزیه کننده. parse_args() #بررسی کنید که آیا هیچ آرگومان (گزینه) سیستمی وارد نشده است if len (sys . argv ) == 1 : print " %s : error: %s \n " % (sys . argv [ 0 ], "No command option داده شده" ) parser . print_help () sys. خروج (3) # پارامترهای استفاده برای اتصال پایگاه داده فضایی database_type = گزینه ها . نوع_ پایگاه داده. upper() instance = گزینه ها. پایگاه داده نمونه = گزینه ها. پایگاه داده. پایین تر () account_authentication = گزینه ها . حساب_احراز هویت. upper() dbms_admin = گزینه ها. Dbms_admin dbms_admin_pwd = گزینه‌ها. Dbms_admin_pwd dbuser = گزینه ها. dbuser dbuser_pwd = گزینه ها . dbuser_pwd tablespace = گزینه ها . Tablespace user_type = گزینه ها . user_type role = گزینه ها . role if (database_type == "SQLSERVER"): database_type = "SQL_SERVER" if ( database_type == "" ): print (" \n %s : خطا: \n %s \n " % (sys . argv [ 0 ] ، "نوع DBMS (--DBMS) باید مشخص شود.")) تجزیه کننده. print_help () sys. exit (3 ) if (database_type == "SQL_SERVER" ): if ( account_authentication == "DATABASE_AUTH" and dbms_admin == "" ): print (" \n %s : خطا: %s \n " % (sys . argv [0]، "مدیر DBMS باید با احراز هویت پایگاه داده مشخص شود")) sys. خروج از (3 ) if ( account_authentication == "OPERATING_SYSTEM_AUTH" و dbms_admin != "" ): print (" \n هشدار: %s \n " % ( "نادیده گرفتن مدیر DBMS مشخص شده هنگام استفاده از احراز هویت سیستم عامل...")) else : if ( dbuser . low () == "" ): print (" \n %s : خطا: %s \n " % (sys . argv [ 0 ], "کاربر پایگاه داده باید مشخص شود.")) sys. خروج (3) if (dbms_admin == ""): چاپ (" \n %s : خطا: %s \n " % (sys . argv [ 0 ], "مدیر DBMS باید مشخص شود!")) sys. exit (3 ) if ( user_type == "DATABASE_USER" and (dbuser == "" or dbuser_pwd == "" )): print (" \n %s : error: \n %s \n " % (sys . argv [0]، "برای ایجاد کاربر تایید شده پایگاه داده، نام کاربری و رمز عبور باید مشخص شود!")) تجزیه کننده. print_help () sys. خروج (3) # مجوز محصول فعلی را دریافت کنیدمجوز_محصول = آرکپی . اطلاعات محصول() # سطح مجوز مورد نیاز را بررسی می کنداگر مجوز_محصول . upper() == "ARCVIEW" یا product_license . upper () == "ENGINE" : print (" \n " + product_license + " مجوز پیدا شد!" + "ایجاد یک کاربر در یک پایگاه جغرافیایی یا پایگاه داده سازمانی به ArcGIS برای دسکتاپ استاندارد یا پیشرفته، موتور ArcGIS با پسوند Geodatabase Update یا مجوز ArcGIS برای سرور نیاز دارد.") sys خروج ( "قبل از ایجاد کاربر پایگاه داده، ArcGIS را مجدداً مجاز کنید.") else : چاپ (" \n " + product_license + "مجوز موجود است! در حال ایجاد...") کمانی . AddMessage ("++++++++++") # متغیرهای محلی instance_temp = instance . جایگزین ( " \\ " , "_" ) instance_temp = instance_temp . جایگزین ("/"، "_") instance_temp = instance_temp. جایگزین (":" , "_" ) Conn_File_NameT = instance_temp + "_" + پایگاه داده + "_" + dbms_admin if os . محیط زیست get ("TEMP") == هیچ : temp = "c:\\temp" else : temp = os . محیط زیست دریافت ("TEMP") اگر سیستم عامل باشد. محیط زیست get ("TMP") == هیچ : temp = "/usr/tmp" else : temp = os . محیط زیست دریافت ("TMP") Connection_File_Name = Conn_File_NameT + ".sde" = temp + os . sep + Conn_File_NameT + ".sde" # فایل .sde را بررسی کنید و در صورت وجود آن را حذف کنیدقوسی env overwriteOutput = اگر سیستم عامل باشد درست است. مسیر. وجود دارد ( Connection_File_Name_full_path): سیستم عامل برداشتن( Connection_File_Name_full_path) try : print ("\n ایجاد فایل اتصال پایگاه داده...\n" ) # فرآیند: ایجاد فایل اتصال پایگاه داده... # استفاده: out_file_location، out_file_name، DBMS_TYPE، instnace، database، account_authentication، نام کاربری، رمز عبور، save_username_password (باید درست باشد) #arcpy.CreateDatabaseConnection_management (دمای، Connection_File_Name، نوع_ پایگاه داده، نمونه، پایگاه داده، احراز هویت حساب، dbms_admin، dbms_admin_pwd، "درست")قوسی CreateDatabaseConnection_management(out_folder_path = temp , out_name = Connection_File_Name , database_platform = database_type , instance = instance , database = database , account_authentication = account_authentication , username = dbms_admin , گذرواژه = dbms_admin_pwd را دریافت کنید . ssageCount ()) : اگر "000565" در کمان . GetMessage(i): #بررسی کنید که آیا اتصال پایگاه داده موفقیت آمیز بوده استقوسی AddReturnMessage (i) arcpy. Arcpy AddMessage (" \n +++++++++" ) . AddMessage ("خروج!!" ) arcpy . سیستم AddMessage ("++++++++++ \n" ) خروج (3) other: arcpy. AddReturnMessage (i) arcpy. AddMessage ("++++++++++ \n " ) print ( "در حال ایجاد کاربر پایگاه داده... \n " ) arcpy . CreateDatabaseUser_management(input_workspace= Connection_File_Name_full_path، user_authentication_type = user_type نام کاربری= dbuser, user_password= dbuser_pwd, نقش= نقش, tablespace_name= فضای جدول) برای من که در دامنه(قوسی. GetMessageCount()): قوسی. AddReturnMessage(من) قوسی. اضافه کردن پیام("+++++++++ \n" ) بجز: برای من که در دامنه(قوسی. GetMessageCount()): قوسی. AddReturnMessage(من) #بررسی کنید که آیا مقداری برای گزینه وارد نشده است بجز SystemExit مانند ه: اگر ه. کد == 2 : تجزیه کننده. استفاده = "" چاپ(" \n" ) تجزیه کننده. print_help() تجزیه کننده. خروج(2 )

    شما می توانید اسکریپت را بر روی کامپیوتر اجرا کنید ArcGIS برای دسکتاپ(استاندارد یا پیشرفته)، ArcGIS برای سرور(استاندارد یا پیشرفته) یا موتور ArcGIS با پسوند Geodatabase Update.

  2. فایل را با پسوند ذخیره کنید .py.
  3. اسکریپت را اجرا کنید و گزینه ها و اطلاعات مناسب برای نمونه SQL Server و کاربری که می خواهید ایجاد کنید را مشخص کنید.

    در مثال زیر، نام اسکریپت ایجاد شده create_database_user.py است. یک حساب کاربری با احراز هویت SQL Server (gisd_owner) در نمونه SQL Server ssi5 ایجاد شده است و طرح و کاربر مربوطه در پایگاه داده gisdata ایجاد شده است. کاربر به نقش اضافه نشده است.

    create_database_user.py --DBMS SQL_SERVER -i ssi5 -D gisdata --auth DATABASE_AUTH -U sa -P !nocopy! --utype DATABASE_USER -u gisd_owner -p T3mpPass

    سرنخ:

    وارد -hیا --کمکدر خط فرمان برای نمایش راهنمای نحو.

پایگاه داده شما اکنون حاوی کاربری است که می تواند جداول ایجاد کند.

راه های مختلفی وجود دارد که مالک داده می تواند جداول را در پایگاه داده یا پایگاه داده جغرافیایی ایجاد کند. برای کسب اطلاعات در مورد ایجاد جداول با استفاده از ArcGIS، به نمای کلی از افزودن مجموعه داده ها به یک پایگاه جغرافیایی مراجعه کنید.

از آنجا که مجموعه داده وجود دارد، مالک آن می تواند حقوق دسترسی به داده ها را به سایر کاربران اعطا کند. برای دستورالعمل ها، به اعطای و لغو مجوزهای دسترسی به مجموعه داده ها مراجعه کنید.

ایجاد حساب‌ها و کاربران با استفاده از ابزارهای سرور SQL

اگر می خواهید کاربری ایجاد کنید که حقوقی متفاوت از حقوق ارائه شده توسط ابزار داشته باشد ایجاد کاربر پایگاه داده، یا حقوقی که مستقیماً به آن اعطا نشده است، می توانید از ابزارهای SQL Server برای این کار استفاده کنید. هنگام ایجاد حساب‌ها و کاربران خود برای استفاده با ArcGIS، باید چند نکته را در نظر داشته باشید:

  • همه کاربران پایگاه داده که داده ایجاد می کنند باید یک طرح پایگاه داده داشته باشند. این طرحواره باید همنام کاربر باشد.
  • می‌توانید به‌جای استفاده از حساب‌های جداگانه ویندوز، به یک گروه ویندوز دسترسی به SQL Server بدهید و ایجاد و مدیریت حساب‌ها را آسان‌تر می‌کند. همه اعضای گروه ویندوز می توانند به SQL Server متصل شوند. حقوق دسترسی به سرور، پایگاه داده یا مجموعه داده ای که به یک گروه اعطا شده است به طور خودکار برای هر یک از اعضای گروه اعمال می شود. با این حال، شما نمی توانید یک طرح واره برای ذخیره داده های ایجاد شده توسط همه اعضای گروه ایجاد کنید. هر کاربر در یک گروه که داده‌ها را در یک پایگاه جغرافیایی ایجاد می‌کند باید طرح‌واره خود را داشته باشد که داده‌ها در آن ذخیره می‌شوند. SQL Server اولین باری که یکی از اعضای گروه اقدام به ایجاد داده می کند یک کاربر و طرحواره در پایگاه داده ایجاد می کند. این به طور خودکار اتفاق می افتد. نیازی به ایجاد طرح و کاربر به صورت دستی نیست.

برای دستورالعمل‌های مربوط به استفاده از ابزارهای SQL Server برای ایجاد حساب‌ها، کاربران و طرح‌واره‌ها، به مستندات Microsoft SQL Server مراجعه کنید.

برای چندین دهه امکان تعریف نقش های کاربر در پایگاه داده برای کمک به مدیریت فرآیند اعطای مجوز دسترسی به پایگاه داده وجود داشته است، اما در سطح نمونه همیشه 9 نقش ثابت وجود داشته است (یا اگر از نسخه ای قبل از SQL Server 2000 استفاده می کنید، هشت نقش - نقش bulkadmin در SQL Server 2005 معرفی شد. اکنون، با ظهور SQL Server 2012، در نهایت امکان ایجاد نقش های سفارشی یا سفارشی سرور وجود دارد.

سال‌هاست که عدم دسترسی به این قابلیت، منبع دردسر مدیران SQL Server بوده است. اگر بخواهید در سطح نمونه به چندین کاربر یا گروه حقوق بدهید و این حقوق را هماهنگ نگه دارید، چه کاری انجام می دهید؟ فرض کنید می‌خواهید وضعیت View System را به تعداد زیادی از کاربران اعطا کنید تا بتوانند اطلاعات قفل را در مراکز توسعه ببینند. لازم بود به هر کاربر یا گروه دامنه به صورت جداگانه حقوق اعطا شود.

اگر همه لاگین‌ها ورود به دامنه بودند، یک راه‌حل وجود داشت: می‌توانید یک گروه دامنه ایجاد کنید تا همه کاربرانی که به چنین حقوقی نیاز دارند را شامل شود (اگر نیاز به اعطای حقوق روی چندین سرور داشتید، باید برای هر سرور گروه‌های جداگانه ایجاد کنید). می‌توانید کاربرانی را به این گروه اضافه کنید، یک لاگین مرتبط با این گروه دامنه ایجاد کنید و سپس وضعیت View Server را مستقیماً روی سرور به گروه بدهید. اما این کار باید با دقت زیادی انجام می شد. در غیر این صورت، امکان اعطای حق ورود به کاربرانی که قبلاً چنین حقوقی را نداشتند، وجود داشت. حتی امکان اعطای حقوقی به کاربران وجود داشت که نباید به آنها اعطا شود.

ایجاد نقش با استفاده از T/SQL

راه های زیادی برای ایجاد یک نقش سفارشی روی سرور وجود دارد، از جمله استفاده از T/SQL، SQL Server Management Studio و Windows PowerShell. اگر می خواهید یک نقش سرور سفارشی با استفاده از T/SQL ایجاد کنید، باید از سه دستور استفاده کنید: دستور Create Server Role نقش سرور سفارشی را ایجاد می کند، دستور Alter Server Role کاربر را به نقش اضافه می کند و در نهایت، بیانیه اعطا حقوق مورد نیاز نقش را اعطا می کند.

استفاده از این سه عبارت در کد زیر نشان داده شده است که یک نقش سرور سفارشی به نام ViewServerState ایجاد می کند. کاربر SomeFakeLogin به نقش اضافه می‌شود و حق View Server State به آن نقش داده می‌شود. برای اعطای این حق به سایر کاربران، کافی است آنها را با استفاده از عبارت Alter Server Role به یک نقش آماده اضافه کنید.

استفاده از GO ایجاد مجوز نقش سرور GO ALTER نقش سرور افزودن عضو برو اعطا مشاهده وضعیت سرور برای رفتن

برای حذف یک کاربر از یک نقش، از عبارت Alter Server Role استفاده کنید. در این حالت از پارامترهای Add Member و Drop Member استفاده می شود:

ALTER SERVER ROLE DROP MEMBER GO

هنگامی که شما نیاز به استقرار یک یا چند نقش سرور سفارشی در بسیاری از نمونه‌های SQL Server دارید، چندین گزینه در دسترس است. احتمالاً دوست ندارید به هر سرور به صورت جداگانه متصل شوید و نقش های سرور سفارشی را روی آنها ایجاد کنید. یکی از گزینه ها استفاده از کنسول SQL Server Management Studio است. این به شما اجازه می دهد تا اسکریپت های T/SQL را روی چندین نمونه به طور همزمان اجرا کنید.

همچنین می‌توانید از مؤلفه‌های Windows PowerShell سرور SQL برای استقرار نقش‌های سرور سفارشی جدید در تمام نمونه‌های SQL Server در سازمان خود استفاده کنید. (گزینه های زیادی برای استفاده از Windows PowerShell برای انجام این کار وجود دارد، اما آنها از حوصله این مقاله خارج هستند.)

کنسول استودیو مدیریت سرور SQL

این کار را می توان به راحتی با استفاده از SQL Server Management Studio GUI انجام داد. برای ایجاد یک نقش سرور سفارشی، با استفاده از Object Explorer به نمونه متصل شوید. در Object Explorer، به گره بروید<نمونه_نام>> نقش های امنیتی/سرور. روی Server Roles کلیک راست کرده و New Server Role را انتخاب کنید. در پنجره New Server Role که باز می شود، در قسمت Server role name، نام نقش را مشخص کنید، در قسمت Owner، مالک نقش را مشخص کنید و سپس اشیاء و مجوزهایی را که باید به اعضای آن اعطا شود، مشخص کنید. نقش ( برنج. 1).

برنج. 1. حقوقی را که نقش باید فراهم کند را مشخص کنید

پس از اتمام کار در صفحه عمومی، به صفحه اعضا بروید ( برنج. 2) و ورودی های SQL Server را که باید بخشی از این نقش سرور سفارشی باشد را مشخص کنید.

برنج. 2. تعریف اعضای نقش

پس از تعریف اعضای نقش در صفحه اعضا، به صفحه عضویت بروید. این نقش های سروری را مشخص می کند که نقش سرور سفارشی باید عضوی از آن باشد. اگر نقشی را در این صفحه انتخاب کنید، کاربرانی که عضو نقش سرور سفارشی هستند که ایجاد می‌کنید نیز از حقوق نقش انتخاب شده برخوردار خواهند بود.

اگر یک نقش سفارشی ایجاد کنید و آن را به عضوی از نقش سرور ثابت سرور ادمین کنید ( برنج. 3)، همه اعضای نقش کاربری جدید ایجاد شده نیز دارای حقوق نقش سرور سرور خواهند بود. همانند گروه‌های دامنه تودرتو یا نقش‌های پایگاه داده، هنگام تودرتو کردن نقش‌ها باید دقت زیادی کرد تا از دادن حقوقی به کاربران که نباید داشته باشند، اجتناب شود.

برنج. 3. نقش های سفارشی را می توان در نقش های سرور دیگر گنجاند

برای سازماندهی تودرتوی نقش ها با استفاده از T/SQL، دوباره به عبارت Alter Server Role با پارامتر Add Member نیاز دارید. به عنوان مثال، برای تبدیل نقش سرور سفارشی ViewServerState به نقش سرور ثابت setupadmin، باید نقش سرور ثابت setupadmin را ویرایش کنید.

ALTER SERVER ROLE ADD MEMBER GO

نقش های سرور سفارشی می تواند کاربران زیادی داشته باشد. ده‌ها حقوق در سطح نمونه وجود دارد که می‌توان به یک نقش سرور سفارشی اعطا کرد تا مدیریت آن حقوق را آسان‌تر کند. همچنین می‌توانید نقشی برای یک DBA جوان ایجاد کنید، که برخی از حقوق سرپرست، اما نه همه، به آن اعطا می‌شود. می توانید یک گروه AlwaysOnAdmin ایجاد کنید که حق انجام یک انتقال پایگاه داده AlwaysOn (که باید در SQL Server انجام شود) را بدون اعطای حقوق کامل مدیریتی به شما می دهد.

موقعیت های زیادی وجود دارد که در آن نقش های سرور سفارشی بسیار مفید هستند. آنها کار مدیر را تا حد زیادی تسهیل می کنند. این گروه ها همچنین با کاهش احتمال اعطای تصادفی حقوقی که نباید به کاربران داده شود، به بهبود امنیت نمونه های SQL Server شما کمک می کنند.

توجه داشته باشید، تمام اقدامات توصیف شده باید روی سرور انجام شود، با حقوق مدیر. اگر دسترسی فیزیکی به سرور ندارید ( SQL Server)، یا دسترسی از راه دور دسکتاپ، یا مجوزهای حساب شما به شما اجازه نمی دهد که کاربران را مدیریت کنید، از جمله ایجاد کاربران جدید، در این صورت نمی توانید به تنهایی مشکل مورد بحث در اینجا را حل کنید. اگر چنین است، برای راهنمایی با مدیر سیستم خود تماس بگیرید.

اگر میزبانی مجازی معمولی دارید، بدون تماس با پشتیبانی فنی شرکت میزبانی خود، نمی توانید به طور مستقل کاربران پایگاه داده خود را مدیریت کنید.

اجرا کن Microsoft SQL Server Management Studioو به سرور متصل شوید.

در لیست "مرورگر شی"(اگر نمایش داده نشد، F8 را فشار دهید) پوشه را باز کنید "ایمنی". روی پوشه کلیک راست کنید "نام های ورود"، در منوی ظاهر شده، را انتخاب کنید "ایجاد ورود به سیستم...".

در پنجره ای که ظاهر می شود، در فیلد "نام ورود"ورود خود را وارد کنید مثلا: "یولپر" (بدون نقل قول). سپس نوع احراز هویت خود را انتخاب کنید. مقدار پیش فرض است "تأیید هویت ویندوز"، به این معنی است که هنگام اتصال به SQL Serverحساب کاربری استفاده خواهد شد پنجره ها. به عنوان یک قاعده، این روش در سرورهای راه دور استفاده نمی شود. انتخاب کنید "احراز هویت SQL Server". در فصل "کلمه عبور"، هر رمزی را وارد کنید، مهمتر از همه آن را یادداشت کنید تا بعداً به کاربر منتقل شود. اگر رمز عبور گم شود، می توان آن را در هر زمان تغییر داد.

حتما گزینه را فعال بگذارید "نیاز به استفاده از خط مشی رمز عبور". گزینه های دیگر: "تنظیم دوره محدودیت رمز عبور"و "کاربر باید دفعه بعد که وارد می شود رمز عبور خود را تغییر دهد"، به صلاحدید خود استفاده کنید، اما معمولاً غیرفعال می شوند تا هنگام اتصال به سرور مشکلات غیر ضروری ایجاد نکنند.

در همان پنجره، در پایین، انتخاب کنید پایگاه داده پیش فرض. این پایگاه داده است که پس از اتصال کاربر به سرور باز می شود. کلیک "خوب"برای ایجاد یک حساب کاربری


حساب کاربری ایجاد شده است، اما این همه ماجرا نیست. اکنون باید حساب را به جداول پیوند دهید. در واقع، این می تواند هنگام ایجاد یک حساب کاربری انجام شود، اما در زمان نوشتن این کمک، SQL Server 2008به دلایلی از یادآوری ارتباط بین حساب در حال ایجاد و جداول (در 2005 چنین نقصی مشاهده نشد).

برای مرتبط کردن یک حساب کاربری با جداول خاص و تعریف حقوق کاربر، پوشه را گسترش دهید "نام های ورود"در مرورگر Object حساب ایجاد شده را در لیست پیدا کنید و روی آن کلیک راست کرده و منو را انتخاب کنید "خواص".


در پنجره ای که ظاهر می شود، به بخش بروید "نقشه برداری کاربر". در لیست بالا، جداولی را انتخاب کنید که با استفاده از این حساب می توان با آنها کار کرد. حقوق را از لیست پایین انتخاب کنید. معمولا به اندازه کافی "db_owner".


پس از آن، بر روی دکمه کلیک کنید "خوب". اکنون می توانید از حساب ایجاد شده برای دسترسی استفاده کنید SQL Server.

12/07/2016 تیم فورد

آنچه یک مدیر پایگاه داده باید در مورد امنیت بداند: توضیحی در مورد شرایط و یک نمای کلی از اشیاء در عمل

امنیت سرور SQL و احراز هویت قابل اعتماد

دو نوع طرح امنیتی در Microsoft SQL Server وجود دارد: امنیت SQL Server و احراز هویت قابل اعتماد (همچنین به عنوان احراز هویت ویندوز نیز شناخته می شود). امنیت SQL Server یک ترکیب استاندارد ورود نام کاربری و رمز عبور است، و احراز هویت مطمئن فرض می‌کند که دستگاهی که سعی در اتصال به نمونه SQL Server دارد، توسط روش احراز هویت دامنه تأیید شده است و نتایج این تأیید به نمونه ارسال می‌شود. SQL Server: فرض می شود دامنه میزبانی است که نمونه SQL Server به حساب کاربری اعتماد دارد - بررسی قبلی انجام شده است.

کاربران و برنامه هایی که سعی می کنند از طریق مکانیسم امنیتی SQL Server به SQL Server متصل شوند، باید یک نام کاربری و رمز عبور ایجاد شده در SQL Server مورد نظر ارائه دهند. هنگام اتصال با استفاده از احراز هویت قابل اعتماد، فقط باید یک پرچم در رشته اتصال تنظیم کنید تا نشان دهد که از احراز هویت مطمئن استفاده شده است. در این حالت، اطلاعات کاربری حساب کاربری نهایی یا سرویس برنامه کاربردی به عنوان یک رمز امنیتی ارسال می شود. اگر یک نام کاربری منطبق بر روی SQL Server وجود داشته باشد، دسترسی داده خواهد شد.

اسامی و کاربران

دو سطح دسترسی به یک نمونه SQL Server وجود دارد: حساب های کاربری سرور (یا نمونه) و کاربران پایگاه داده. با استفاده از حساب‌ها، سرورها به یک کاربر خارجی اجازه می‌دهند (در این مقاله، اصطلاح "کاربر" به هر برنامه، سرویس، API و غیره اشاره دارد که تلاش می‌کند به SQL Server متصل شود) تا اتصال اولیه را با یک نمونه از SQL Server برقرار کند. با امنیت مبتنی بر SQL، این به یک نام کاربری و رمز عبور نیاز دارد. در مورد احراز هویت مطمئن، این یک حساب دامنه است.

دو راه برای ایجاد این حساب‌های کاربری وجود دارد: استفاده از Transact-SQL (https://msdn.microsoft.com/en-us/library/ms189751.aspx? f=255&MSPPError=-2147217396) یا از طریق رابط کاربری گرافیکی. روش استفاده از T-SQL برای ایجاد حساب ها به خوبی مستند شده است و بهتر است به اسناد رسمی مایکروسافت SQL Server مراجعه کنید. در حال حاضر، بیایید نحوه ایجاد یک حساب کاربری در رابط گرافیکی را بررسی کنیم. برای راه‌اندازی کادر محاوره‌ای برای ایجاد حساب‌های کاربری، به نمونه SQL Server در SQL Server Management Studio (SSMS) در Object Explorer متصل شوید و سپس گره Security\Logins را گسترش دهید. روی Logins کلیک راست کرده و از منوی زمینه، New Login را انتخاب کنید (شکل 1).

گفتگوی تنظیمات حساب را که در شکل 2 نشان داده شده است مشاهده خواهید کرد. می توانید نام کاربری خود را در همان پنجره تغییر دهید.

این برگه عمومی برای ایجاد (و تغییر) تنظیمات حساب است. این با دو طرح امنیتی که قبلا توضیح داده شد متفاوت است. در تب General می توانید تنظیم کنید:

  • نام ورود. برای احراز هویت استفاده می شود. در مورد ویندوز، یا احراز هویت مطمئن، باید نام را در قالب DOMAIN\LOGIN مشخص کنید، جایی که LOGIN نام کاربری در دامنه ای است که کاربر از آن احراز هویت می کند. اگر نمونه SQL Server در دامنه دیگری قرار دارد، یک رابطه اعتماد بین آن دامنه و دامنه SQL Server لازم است.
  • کلمه عبور. با احراز هویت SQL Server، کادر متن رمز عبور فعال می شود و شما هم نام کاربری و هم رمز عبور مربوطه را وارد می کنید.
  • خط مشی رمز عبور و انقضا. چک باکس های رمز عبور و خط مشی انقضا نیز در حالت احراز هویت SQL Server انتخاب می شوند و خط مشی هایی که در Active Directory در دامنه ای که میزبان SQL Server است اعمال می شوند. با اختصاص نام کاربری SQL Server می توانید به کاربران اجازه دهید پس از ثبت نام رمز عبور خود را تغییر دهند. در نتیجه، دسترسی مدیر پایگاه داده به نام حساب کاربری نهایی ممنوع است.
  • گواهینامه ها، کلیدها، اعتبارنامه ها. در این مقاله مبتدی، گواهی ها، کلیدها و اعتبارنامه ها را پوشش نمی دهیم.
  • پایگاه داده پیش فرض هنگامی که اتصال به SQL Server برقرار شد، دو مرحله انجام می‌شود: احراز هویت (در صورت استفاده از Windows یا Trusted authentication، نام کاربری باید برای اعتبار دامنه کاربر وجود داشته باشد، یا ترکیب نام کاربری/رمز عبور باید به نمونه SQL Server ارسال شود). این اولین مانع است. دوم این است که نام کاربری تأیید شده دارای یک شی کاربر مرتبط در پایگاه داده پیش فرض است - پایگاه داده در ابتدا به عنوان زمینه نام کاربری پس از تأیید هویت پیکربندی شده است. حتی در صورت عبور از اولین مانع، اگر کاربر پایگاه داده مربوطه در پایگاه داده پیش فرض وجود نداشته باشد، اتصال برقرار نمی شود و ورودی مربوطه در گزارش خطای SQL نوشته می شود. اما استثنائاتی وجود دارد: اگر نقش سرور یک کاربر آنقدر مهم است که لازم است به طور پیش فرض در هر پایگاه داده، حقوق ضمنی برای آن تنظیم شود، در این صورت نیازی به داشتن یک کاربر متناظر در پایگاه داده پیش فرض نیست. با این حال، من از خودم جلوتر می روم زیرا هنوز به کاربران پایگاه داده یا نقش های سرور توجه نکرده ایم. توجه به این نکته کافی است که وقتی یک پایگاه داده پیش فرض را در رابط کاربری گرافیکی انتخاب می کنید، هیچ کاربر پایگاه داده مرتبط ایجاد نمی شود. شما به سادگی مشخص می کنید که پایگاه داده پیش فرض باید چه باشد. هنگامی که این کار را انجام می دهید، از تب User Mapping در کادر محاوره ای Create Login برای ایجاد یک کاربر پایگاه داده مرتبط استفاده می کنید.

اجازه دهید به برگه بعدی، نقش‌های سرور، که در شکل 3 نشان داده شده است برویم. در این صفحه، می‌توانید هر نقش سطح SQL Server (نمونه) را برای کاربر جدید انتخاب کنید. نقش‌های سرور مجموعه‌ای از حقوق هستند که به عنوان امنیت‌پذیر نیز شناخته می‌شوند، که در مجموعه‌ای بسته‌بندی می‌شوند تا مجبور نباشید به هر یک از قابلیت‌های امن به‌صورت جداگانه حقوقی را اختصاص دهید. به طور پیش‌فرض، هر حساب عضوی از یک نقش عمومی است که به شما امکان می‌دهد یک اتصال اولیه به یک نمونه از SQL Server برقرار کنید. بقیه مقاله به هر نقش سرور موجود در Microsoft SQL Server نگاه خواهد کرد.

صفحه بعدی کادر محاوره ای Create Login در SQL Server Management Studio برای نگاشت حساب های کاربری است. هر حساب می تواند یک کاربر در یک یا چند پایگاه داده داشته باشد. در این صفحه می توانید کاربران پایگاه داده مرتبط با حساب جدید ایجاد کنید. برای این کار باید اطلاعات زیر را ارائه دهید.

  • پایگاه داده. کادر کنار پایگاه داده را انتخاب کنید که می‌خواهید یک کاربر مرتبط برای حساب ایجاد کنید.
  • نام کاربری نام شی کاربر لزوماً با نام حساب مطابقت ندارد، و ما به شما نشان خواهیم داد که چگونه می توان این را تغییر داد.
  • طرح واره پیش فرض هر کاربر پایگاه داده باید به یک طرح پیش فرض اختصاص داده شود. طرحواره مجموعه ای از اشیاء پایگاه داده است که به صورت منطقی (اما نه لزوماً فیزیکی) از سایر اشیاء در پایگاه داده جدا می شوند. شما می توانید به یک کاربر یا گروهی از کاربران حقوقی را برای همه اشیاء موجود در یک طرح معین اعطا کنید، به عنوان مثال، به همه کاربران از حسابداری (یا یک حساب سرویس برنامه حسابداری) حقوق خاصی را برای همه اشیاء در طرح صورتحساب اعطا کنید، اما به آنها دسترسی ندهید. اشیاء به سایر کاربران هنگامی که شما یک طرح پیش فرض را به کاربر پایگاه داده اختصاص می دهید، نیازی به اضافه کردن نام طرح در فراخوانی های T-SQL به پایگاه داده در هنگام آدرس دهی به اشیا در آن طرح نیست. این همچنین به این معنی است که اگر به یک کاربر حقوقی برای ایجاد اشیاء داده شود، آنها به طور پیش فرض در این طرحواره ایجاد می شوند مگر اینکه هنگام ایجاد اشیاء، نام طرحی را مشخص کنید. در ادامه مقاله به مفهوم مدارها خواهیم پرداخت.
  • عضویت نقش پایگاه داده درست مانند سطح نمونه یا سرور، هر پایگاه داده دارای مجموعه ای از حقوق از پیش تعریف شده است که در نقش ها بسته بندی شده اند. کمی بعد به نقش های پایگاه داده ای که با مایکروسافت SQL Server ارائه می شوند نگاه خواهیم کرد.

بیایید نگاهی به کادر محاوره ای مثال برای حساب کاربری SQLCRUISE\skipper بیندازیم (شکل 4 را ببینید).

در این مثال، به کاربر SQLCRUISE\skipper حقوق پایگاه داده پیش فرض (قایق نجات) داده شده است، جایی که نام کاربری مرتبط به سادگی skipper است. طرح پیش فرض skipper_only است. دو پایگاه داده دیگر که در آنها کاربران برای این حساب ایجاد خواهند شد از نام کاربری مشابه در نام کاربری (معمولاً برای سهولت شناسایی) استفاده می کنند و طرح پیش فرض dbo است که پیش فرض در مایکروسافت SQL Server برای همه کاربران تعریف شده است. اشیاء. اطلاعات بیشتر در این مورد در بخش بعدی ارائه خواهد شد. در مورد پایگاه داده قایق نجات، ما فقط عضویت در نقش پایگاه داده عمومی را ارائه می دهیم که به شما امکان می دهد بدون مجوزهای اضافی به پایگاه داده متصل شوید.

صفحه بعدی، Securables، موارد امن را در سطح سرور یا نمونه ارائه می کند. همانطور که در بالا ذکر شد، امنیت پذیرها مجوزهایی هستند که به اشیا اعطا می شوند. اشیاء قابل ایمن معمولاً در موارد زیر ارائه می شوند:

  • نقش ثابت بیش از حد گسترده است (بسیاری از حقوق دیگر برای حساب).
  • نقش اختصاص داده شده یا مجموعه ای از نقش ها به طور کامل تمام حقوق مورد نیاز برای حساب را پوشش نمی دهد.

در مثال ما، من عضویت SQLCRUISE\skipper را در نقش سرور عمومی اعطا کردم و به آن اجازه دادم هر گونه تعاریف شی را که در سطح سرور وجود دارد را مشاهده کند (شکل 5 را ببینید).

در نهایت به صفحه وضعیت می رویم. در این صفحه می توانید دسترسی کاربر را مجاز یا رد کنید (به طور پیش فرض Grant انتخاب شده است - اجازه دهید). بنابراین، می توانید یک حساب کاربری ایجاد کنید، حقوق اعطا کنید، کاربران مرتبط ایجاد کنید و سپس دسترسی را لغو کنید. می توانید برای یک کاربر موجود به این پنجره بازگردید و دسترسی به نمونه SQL Server را لغو کنید. فعال کردن و غیرفعال کردن یک حساب کاربری به همین ترتیب انجام می شود (به صفحه 6 مراجعه کنید). در نهایت، می‌توانیم وضعیت حساب کاربر را مشاهده کنیم و ببینیم که آیا حساب به دلیل تلاش‌های زیاد برای ورود ناموفق با رمز عبور نادرست قفل شده است یا خیر.

هر گزینه با موفقیت کار می کند اگر فقط یک جدول به نام tblFoo در پایگاه داده SQL_Cruise وجود داشته باشد و زمینه پایگاه داده فعلی پایگاه داده SQL_Cruise باشد. با این حال، صرف نظر از اینکه در حال حاضر به کدام پایگاه داده در نمونه SQL Server حاوی پایگاه داده SQL_Cruise متصل هستید، تنها گزینه اول به درستی کار می کند. اگر شما به پایگاه داده SQL_Cruise متصل باشید، بدون توجه به تعداد طرحواره هایی که tblFoo دارند، گزینه دوم اجرا می شود، زیرا شما طرح dbo را مشخص کرده اید. اگر پایگاه داده SQL_Cruise دارای طرحواره های متعدد با tblFoo باشد، گزینه سوم یک پیام خطا ایجاد می کند (شکل 8 را ببینید).

بله، درست است - شی وجود دارد، اما با پیغام خطا Invalid object name دریافت می کنید. هرگز از قبل مطمئن نباشید که شیئی با آن نام وجود ندارد. پیام ممکن است نشان دهنده یک مشکل نحوی باشد.

نقش های ثابت با Microsoft SQL Server در هر دو سطح سرور و پایگاه داده گنجانده شده است. با این حال، اگر شرایطی پیش آمد که نیاز دارید مجوزهای مشابه را به بسیاری از کاربران اختصاص دهید، می‌توانید نقش‌های خود را ایجاد کنید. ایجاد نقش‌های سفارشی به شما این امکان را می‌دهد که این حقوق را تنها یک بار تعریف کنید: زمانی که نقش را ایجاد می‌کنید، نه بر اساس حساب ورود به سیستم هر کاربر یا هر کاربر (بسته به نقش‌های پایگاه داده یا سرور). علاوه بر صرفه جویی در زمان، ناهماهنگی را هنگام تخصیص حقوق به چندین کاربر یا حساب حذف می کند.

از پیوندها برای پیمایش در فهرست کامل نقش‌های سرور و نقش‌های پایگاه داده توسط مایکروسافت استفاده کنید. در مقاله‌های آینده، وقتی از مبانی به موضوعات عمیق‌تر می‌رویم، نحوه ایجاد نقش‌ها، افزودن کاربران یا حساب‌ها به آن نقش‌ها و مرتبط کردن حقوق با نقش‌ها در سطوح سرور و پایگاه داده را پوشش خواهیم داد.

امنیت Microsoft SQL Server موضوع بسیار مهمی است. از نظر عمق و همچنین اصالت اصطلاحات آن متمایز است. امیدوارم به هدف خود در توضیح اصطلاحات مختلف و ارائه یک نمای کلی از اشیاء مورد استفاده در عمل رسیده باشم. ما چند موضوع دیگر را در این مقالات سطح ابتدایی پوشش خواهیم داد، اما به زودی به مسائل پیچیده تری که از این پست ناشی می شود، خواهم پرداخت. مثل همیشه از توجه خوانندگان تشکر می کنم و منتظر نظرات شما هستم. امیدوارم این مقاله به مدیران مبتدی پایگاه داده کمک کند تا بر اسرار SQL تسلط یابند.

لیست 1. کد مربوط به تنظیمات انجام شده در رابط کاربری گرافیکی

استفاده از GO CREATE LOGIN FROM WINDOWS WITH DEFAULT_DATABASE= GO USE GO CREATE USER FOR LOGIN ALTER USER WITH DEFAULT_SCHEMA= برو CREATE SCHEMA AUTHORIZATION GO USE GO CREATE USERHALDE GO Create USER FOR LOGIN ALTER USER WITH DEFAULT_S CHEMA= GO از GO GRANT VIEW ANY DEFINITION TO GO استفاده کنید

فهرست 2. اطلاعات در مورد کاربران سیستم و پایگاه داده

SELECT name , sid , principal_id , type_desc , default_database_name FROM sys.server_principals WHERE name = "professor"; SELECT name , sid , principal_id , type_desc , default_schema_name FROM lifeboat.sys.database_principals WHERE name = "professor";

فهرست 3. پرس و جوی مثال برای انتخاب ستون ها و ردیف های جدول

گزینه 1: FQDN -============================================ ======================================== SELECT * FROM SQL_Cruise.dbo.tblFoo; -================================================= === ======================= - گزینه 2: نام تعریف شده از طریق طرحواره -=============== == ================================================ ===== ======= SELECT * FROM dbo.tblFoo; -================================================= === ======================== - گزینه 3: فقط نام شی -=============== === =============================================== ====== ===== SELECT * FROM tblFoo; فهرست 4. ایجاد جداول با طرحواره های متعدد استفاده از GO CREATE SCHEMA AUTHORIZATION GO CREATE TABLE dbo.tblFoo (id INT); CREATE TABLE .tblFoo (id INT); SELECT * FROM tblFoo.


مبانی امنیت SQL Server


5 پاسخ

با توجه به سوال شما، فکر می کنم ممکن است در مورد تفاوت بین کاربر و لاگین کمی گیج شده باشید. ورود به سیستم به طور کلی یک حساب در SQL Server است - شخصی که می تواند وارد سرور شود و رمز عبور دارد. کاربر یک ورودی با دسترسی به یک پایگاه داده خاص است.

ایجاد یک ورود آسان است و (بدیهی است) باید قبل از ایجاد یک حساب کاربری برای ورود به یک پایگاه داده خاص انجام شود:

ایجاد login NewAdminName با رمز عبور = "ABCD" GO

به این صورت است که با استفاده از Loginی که به تازگی اعلام کرده اید، یک کاربر با امتیازات db_owner ایجاد می کنید:

از YourDatabase استفاده کنید. برو اگر وجود ندارد (انتخاب * از sys.database_principals WHERE name = N"NewAdminName") شروع به ایجاد کاربر برای ورود به سیستم EXEC sp_addrolemember N"db_owner", N"NewAdminName" END; برو

حالا لاگین ها کمی روان تر از آنچه در بالا به نظر می رسد هستند. به عنوان مثال، یک حساب کاربری به طور خودکار (در اکثر نصب های SQL Server) برای حساب کاربری Windows Administrator هنگام نصب پایگاه داده ایجاد می شود. در اکثر مواقع من فقط از این زمانی استفاده می کنم که پایگاه داده را مدیریت می کنم (همه امتیازات را دارد).

با این حال، اگر می‌خواهید از طریق یک برنامه به SQL Server دسترسی پیدا کنید، باید سرور را برای «Mixed Mode» (هر دو ویندوز و SQL Login) پیکربندی کنید و مانند تصویر بالا یک Login ایجاد کنید. سپس امتیازات "GRANT" را برای ورودی SQL بر اساس آنچه برای برنامه شما مورد نیاز است دریافت خواهید کرد. برای اطلاعات بیشتر مراجعه کنید.

به روز رسانی: آرون اشاره می کند که از sp_addsrvrolemember برای اختصاص یک نقش تعیین شده به حساب شما استفاده می کند. این یک ایده خوب است - سریعتر و آسانتر از اعطای امتیازات به صورت دستی. اگر آن را پیدا کنید، لینک های زیادی خواهید دید. با این حال، هنوز باید تفاوت بین ورود و کاربر را درک کنید.

حقوق مدیر کامل برای کل سرور یا یک پایگاه داده خاص؟ فکر کنم بقیه برای دیتابیس جواب دادند اما برای سرور:

استفاده کنید ؛ GO CREATE LOGIN MyNewAdminUser با رمز عبور = N"abcd"، CHECK_POLICY = OFF، CHECK_EXPIRATION = OFF; GO EXEC sp_addsrvrolemember @loginame = N"MyNewAdminUser"، @rolename = N"sysadmin";

بسته به اینکه از کدام نسخه SQL Server Express استفاده می کنید، ممکن است لازم باشد پارامترهای CHECK_ را کنار بگذارید (تقریباً همیشه ایده خوبی است که این اطلاعات را در سؤال خود لحاظ کنید).

اگر می‌خواهید یک اسکریپت عمومی ایجاد کنید، می‌توانید آن را با یک دستور Execute انجام دهید، که با نام کاربری و نام پایگاه داده خود جایگزین کنید.

اعلان @userName به عنوان varchar(50); defaultDataBaseName@ را به عنوان varchar(50) اعلام کنید. @LoginCreationScript را به عنوان varchar(max) اعلام کنید. اعلان @UserCreationScript به عنوان varchar(max)؛ اعلام @TempUserCreationScript به عنوان varchar(max)؛ تنظیم @defaultDataBaseName = "data1"; set @userName = "domain\userName"; set @LoginCreationScript ="CREATE LOGIN [(userName)] FROM WINDOWS WITH DEFAULT_DATABASE =(dataBaseName)" set @UserCreationScript =" USE (dataBaseName) CREATE User [(userName) EX)[(userName) EC] "db_datareader """""(username)""؛ EXEC sp_addrolemember ""db_datawriter"، ""(username)""؛ Grant Execute on Schema:: dbo TO [(username)];" /*ایجاد ورود*/ تنظیم @LoginCreationScript=Replace(Replace(@LoginCreationScript، "(userName)"، @userName)، "(dataBaseName)"، @defaultDataBaseName) set @UserCreationScript =Replace(@UserCreation "(userNapt," ، @userName) Execute(@LoginCreationScript) /*ایجاد کاربر و انتساب نقش*/ تنظیم @TempUserCreationScript =Replace(@UserCreationScript، "(dataBaseName)"، @defaultDataBaseName) Execute(@TempUserCreationScript@TempUserCreationScript@ CreationScript، "(dataBaseName)"، "db2") Execute(@TempUserCreationScript) مجموعه @TempUserCreationScript =Replace(@UserCreationScript، "(dataBaseName)"، "db3") Execute(@TempUserCreationScript)

شما می توانید استفاده کنید:

ایجاد ورود با رمز = " "؛ برو

شما همچنین می توانید استفاده کنید:

GRANT permission [ ,...n ] ON SCHEMA:: schema_name

برای پیکربندی مجوزهای طرحواره ای که به کاربران اختصاص داده اید.

هفته گذشته Microsoft SQL Server 2014 Developer Edition را در صفحه توسعه دهنده خود نصب کردم و بلافاصله با مشکلی مواجه شدم که قبلاً هرگز ندیده بودم.

من نسخه های مختلف SQL Server را بارها نصب کرده ام و معمولاً یک فرآیند بدون درد است. سرور را نصب کنید، کنسول مدیریت را راه اندازی کنید، به همین سادگی است. با این حال، پس از اتمام این نصب، زمانی که سعی کردم با استفاده از SSMS وارد سرور شوم، با خطای مشابه زیر مواجه شدم:

خطای ورود به سیستم SQL Server 18456 "ورود برای کاربر انجام نشد... (Microsoft SQL Server، خطا: 18456)" من از این خطا استفاده کرده ام اگر رمز عبور را اشتباه وارد کرده باشم - اما این فقط در صورتی است که از حالت مختلط استفاده کنم ( Windows و SQL Authentication). در این مورد، سرور فقط با Windows Authentication پیکربندی شده بود و حساب کاربری مال من بود. هنوز مطمئن نیستم که چرا کاربر من را در حین نصب به نقش SYSADMIN اضافه نکرده است. شاید من یک مرحله را از دست داده ام و فراموش کرده ام آن را اضافه کنم. در هر صورت همه امیدها از بین نرفت.

اگر نمی‌توانید با هر حساب دیگری در SQL Server وارد شوید، راه حل این مشکل، اضافه کردن ورود به شبکه از طریق CLI است. برای انجام این کار، باید یک مدیر ویندوز برای رایانه شخصی باشید که وارد آن شده اید.

سرویس MSSQL را متوقف کنید. با استفاده از دستور Run as administrator یک خط فرمان باز کنید. به پوشه ای که فایل SQL Server EXE در آن ذخیره شده است بروید. پیش فرض برای SQL Server 2014 "C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Binn" است. دستور زیر را اجرا کنید: "sqlservr.exe -m". با این کار SQL Server در حالت تک کاربر راه اندازی می شود. هنگامی که از آن خط فرمان خارج شدید، یکی دیگر را باز کنید، مراحل 2 و 3 را تکرار کنید. در پنجره دوم خط فرمان، "SQLCMD -S Server_Name\Instance_Name" را اجرا کنید، در آن پنجره، خطوط زیر را اجرا کنید و بعد از هر کدام Enter را فشار دهید: 1

ایجاد LOGIN [نام دامنه/نام کاربری] FROM WINDOWS 2 GO 3 SP_ADDSRVROLEMEMBER "LOGIN_NAME", "SYSADMIN" 4 GO از CTRL + C برای خاتمه دادن به هر دو فرآیند در پنجره های خط فرمان استفاده کنید. از شما خواسته می شود Y را فشار دهید تا فرآیند SQL Server پایان یابد.

سرویس MSSQL را مجددا راه اندازی کنید. این است! اکنون می توانید با استفاده از لاگین آنلاین خود وارد شوید.



 


خواندن:



منوی سمت چپ cayo coco را باز کنید

منوی سمت چپ cayo coco را باز کنید

جزیره کایو کوکو یک جزیره تفریحی در مرکز کوبا است. موقعیت جزیره جزیره کایو کوکو دقیقا روبروی کانال ویجو در...

چرا به ارتباطات رادیویی و ایستگاه های رادیویی نیاز داریم؟

چرا به ارتباطات رادیویی و ایستگاه های رادیویی نیاز داریم؟

برخی از مردم رویای یک آیفون جدید، برخی دیگر یک ماشین و برخی دیگر مجموعه ای از قطعات و بلندگوی جدید رادیوی خود را در سر می پرورانند. زمانی نه چندان دور بود که ...

ضرایب همبستگی رتبه کندال و اسپیرمن مثال ضریب همبستگی رتبه کندال

ضرایب همبستگی رتبه کندال و اسپیرمن مثال ضریب همبستگی رتبه کندال

ارائه و پردازش مقدماتی ارزیابی های کارشناسی در عمل از چندین نوع ارزیابی استفاده می شود: - کیفی (اغلب به ندرت، ...

توابع برنامه نویسی

توابع برنامه نویسی

هدف کار: 1) قوانین توصیف توابع را مطالعه کنید. 2) کسب مهارت در استفاده از توابع هنگام نوشتن برنامه در C++. نظری...

فید-تصویر RSS