Создать пользователя ms sql: Создание пользователя базы данных — SQL Server

Содержание

Права в MS SQL и создание пользователей. CREATE USER, GRANT, REVOKE

На первый взгляд, в MS SQL нестандартная система учетных записей. В ней существуют логины и пользователи.


Логины — это понятие всего сервера SQL. У них могут быть права на какие-то административные задачи (например бэкап). Им можно дать права на какие-то действия с базой или таблицой. Для того что бы у логина были права на базу на основе него создается пользователь. Они могут быть как SQL логином, так и созданные на основе  существующих пользователя Windows или AD. Например тот пользователь, который устанавливал MS SQL так же добавился в список логинов. Рекомендуется использовать логины на основе Windows или AD, а не SQL логины.


Пользователи — это понятие в рамках одной базы. Им нельзя дать права по административной части, но можно дать права на работу с базой.


Оба типа учетных записи можно создать как в графике, так и с помощью запроса T-SQL


 


T-SQL CREATE USER, CREATE LOGIN


Перейдем в базу данных, в которой мы работаем:



USE pubs


Для создания логина SQL выполним:



CREATE LOGIN Anton WITH PASSWORD='Password1910'


Anton — имя логина. Password1910 — пароль. У этого логина уже будут права на вход. 


Посмотреть что этот логин создался можно так:



Под номером 3 — это кнопка обновления. Может понадобится т.к. в графике изменения происходят не моментально.


Для создания пользователя привязанного к логину нужно выполнить:



CREATE USER AntonUser FOR LOGIN Anton


Отмечу, что пользователь создасться в той базе, откуда мы выполняем запрос.


Что бы просто создать пользователя нужно:



CREATE USER JustUser WITHOUT LOGIN


Где JustUser — просто пользователь


Созданных пользователей можно увидеть так:


Пользователи создаются без каких либо прав на базу.

T-SQL GRANT

GRANT в пер. «Разрешение» дает права на какое-то действие.

Что бы дать пользователю право получать данные из какой-то таблицы нужно выполнить:


GRANT SELECT ON dbo. authors TO AntonUser

Если мы хотим зайти под созданным пользователем нам нужно выполнить ряд действий. Дело в том, что по умолчанию аутентификация по логинам SQL отключена (разрешена только Windows). Для этого зайдем в свойства сервера:

Затем в «Безопасность» и включи аутентификация SQL

 

Теперь мы сможем зайти под логином SQL. Для этого сделаем следующее — откроем новое окно запросов Ctr + N или нажмем кнопку:

Важно сделать так, что бы у нас было 2 окошка для запросов до того как мы сменем пользователя. Благодаря этому у нас каждое окно будет работать под разными пользователями

Затем окно подключения пользователя:

Меняем тип подключени на SQL и вводим логин/пароль. Я создавал логин Anton, с паролем Password1910.

После подключения можем увидеть, что одно окно работает под логином Anton, а другое под учетной записью с помощью которой мы проводили операции выше. Так же обратите внимания, что новые пользователь подключен к другой базе (master).

Перейдем к базе, на которую мы давали права. В моем случае это база pubs


USE pubs

Я давал права на SELECT для таблицы dbo.authors. Проверем работу:


SELECT *
FROM dbo.authors

Запрос дожен пройти успешно.

Для другой таблицы, на которую мы не давали прав:


SELECT *
FROM dbo.titles

Получим ошибку

The SELECT permission was denied on the object ‘titles’, database ‘pubs’, schema ‘dbo’.

Что бы отозвать разрешение на SELECT нужно заменить GRANT на REVOKE (не забудьте переключится на окно у которого есть разрешение или переключится на предыдущего пользователя):


REVOKE SELECT ON dbo.authors TO AntonUser

Разрешений, которые мы можем выдать пользователю достаточно много. Это основные:



Мы можем так же явно запретить пользователю выполнять определенные запросы. Для этого есть DENY:



DENY SELECT ON dbo. authors TO AntonUser


Что ба дать разрешение на создание таблиц:



USE Pubs;
GRANT CREATE TABLE TO Anton;


 


Теперь создадим логин через графический интерфейс. Нажмем следующие кнопки:



В новом окне мы должны заполнить логин (1) и пароль (3). Под цифрой 2 мы можем увидеть выбор способа аутентификации. В случае Windows мы должны будем выбрать локального пользователя или пользователя AD. Перейдем на закладку Server Roles (4).



Перед нами находятся роли уровня сервера. Все эти роли это просто набор прав. В Microsoft SQL мы так же можем создать и свои группы. Public — роль по умолчанию для всех, кому разрешено вход. Из всех созданных ролей только public можно изменять.



Приведу описание самых популярных ролей:



Перейдем на следующую вкладку (2)


На этой закладке можно сразу создать пользователя и привязать его к базе данных. На этой закладке отображаются 4 базы, которые вы скорее всего раньше не видели. Это системные базы данных, которые хранят в себе транзакции, структуру подключенных баз, скрипты агента и т.д. В области 2 можно дать права на выделенную базу данных.



Коротко о нескольких ролях баз данных:



Роль public, в отличии от всех остальных, можно изменять. Т.е. можно дать роли public разрешение на SELECT и тогда все пользователи с логином смогут это делать. По умолчанию эта ролько может делать запросы типа:



SELECT 1+1


 

Рекомендую

Подписывайтесь на наш Telegram канал

Теги:

#ms-sql

Добавление учетных записей и пользователей в SQL Server—ArcMap

  • Добавить пользователя, который может создавать данные.
  • Создание учетных записей и пользователей с помощью инструментов SQL Server

В Microsoft SQL Server администратор базы данных добавляет учетные записи к экземпляру SQL Server, эти учетные записи сопоставляются с пользователями в отдельных базах данных в экземпляре SQL Server. Пользователи базы данных, которые создают таблицы и классы объектов, должны иметь соответствующие права доступа для создания объектов в базе данных и схему, в которой будут созданы эти объекты. При использовании в ArcGIS имя схемы должно совпадать с именем пользователя базы данных.

Для этого вы можете использовать инструмент геообработки или скрипт Создать пользователя базы данных чтобы выполнить следующие операции:

  • Создать или добавить учетную запись к экземпляру SQL Server.
  • Создать пользователя, соответствующего указанной учетной записи.
  • Создать схему сопоставления для пользователя в указанной базе данных.
  • Предоставить пользователю права доступа, необходимые для создания таблиц, классов объектов или представлений в указанной базе данных.

Добавить пользователя, который может создавать данные.

Вы можете запустить инструмент Создать пользователя базы данных из ArcGIS Desktop или вызвать инструмент в скрипте Python для создания пользователя базы данных, который может создавать таблицы, классы объектов и представления.

Вы должны подключиться к базе данных используя учетную запись с правами системного администратора в экземпляре SQL Server, чтобы запустить инструмент Создать пользователя базы геоданных tool.

Если вы хотите создать пользователя базы геоданных с учетной записью Windows, соответствующая учетная запись должна уже существовать до того, как вы запустите инструмент.

Использование инструмента Создать пользователя базы данных

  1. Запустите клиент ArcGIS Desktop.
  2. Подключитесь к базе данных или базе геоданных, используя учетную запись с правами системного администратора в экземпляре SQL Server.
  3. Откройте инструмент Создать пользователя базы данных.

    Инструмент находится в группе инструментов Администрирование базы геоданных набора Управление данными.

  4. Укажите подключение к базе данных в поле Входное подключение к базе данных.
  5. Выберите, будете ли вы создавать учетную запись с аутентификацией SQL Server или использовать существующую учетную запись с аутентификацией Windows.
    • Оставьте Создать пользователя с аутентификацией средствами операционной системы не отмеченным, чтобы создать пользователя с аутентификацией средствами SQL Server. Обратите внимание, что по умолчанию экземпляры SQL Server используют только аутентификацию Windows. Если ваш экземпляр не настроен для использования аутентификации SQL Server или Windows, вы не сможете создать пользователя с аутентификацией средствами базы данных.
    • Отметьте Создать пользователя с аутентификацией средствами операционной системы, чтобы использовать существующую учетную запись с аутентификацией средствами Windows.
  6. Введите имя пользователя базы данных, который будет создан инструментом.

    Если вы выберите создание учетной записи с аутентификацией SQL Server, имя, которое вы введете, также будет использовано для учетной записи.

  7. Введите пароль пользователя базы данных.
  8. Если у вас уже определена роль, к которой вы хотите добавить пользователя, укажите ее.
  9. Щелкните OK (ArcMap) или Запустить (ArcGIS Pro).

Запустите скрипт Python

Чтобы создать пользователя с помощью скрипта, выполните следующие шаги:

  1. Создайте текстовый файл на клиентском компьютере ArcGIS и скопируйте следующий скрипт в файл.
    """
    Name: create_database_user.py
    Description: Provide connection information to a database user.
    Type create_database_user.py -h or create_database_user.py --help for usage
    """
    # Import system modules
    import arcpy
    import os
    import optparse
    import sys
    # Define usage and version
    parser = optparse.OptionParser(usage = "usage: %prog [Options]", version="%prog 1.0 for 10.1 release")
    #Define help and options
    parser.add_option ("--DBMS", dest="Database_type", type="choice", choices=['SQLSERVER', 'ORACLE', 'POSTGRESQL', ''], default="", help="Type of enterprise DBMS:  SQLSERVER, ORACLE, or POSTGRESQL.")                   
    parser.add_option ("-i", dest="Instance", type="string", default="", help="DBMS instance name")
    parser.add_option ("-D", dest="Database", type="string", default="none", help="Database name:  Not required for Oracle")
    parser. add_option ("--auth", dest="Account_authentication", type ="choice", choices=['DATABASE_AUTH', 'OPERATING_SYSTEM_AUTH'], default='DATABASE_AUTH', help="Authentication type options (case-sensitive):  DATABASE_AUTH, OPERATING_SYSTEM_AUTH.  Default=DATABASE_AUTH")
    parser.add_option ("-U", dest="Dbms_admin", type="string", default="", help="DBMS administrator user")
    parser.add_option ("-P", dest="Dbms_admin_pwd", type="string", default="", help="DBMS administrator password")
    parser.add_option ("--utype", dest="user_type", type ="choice", choices=['DATABASE_USER', 'OPERATING_SYSTEM_USER'], default='DATABASE_USER', help="Authentication type options (case-sensitive):  DATABASE_USER, OPERATING_SYSTEM_USER.  Default=DATABASE_USER")
    parser.add_option ("-u", dest="dbuser", type="string", default="", help="database user name")
    parser.add_option ("-p", dest="dbuser_pwd", type="string", default="", help="database user password")
    parser.add_option ("-r", dest="role", type="string", default="", help="role to be granted to the user")
    parser. add_option ("-t", dest="Tablespace", type="string", default="", help="Tablespace name")
    # Check if value entered for option
    try:
    	(options, args) = parser.parse_args()
    	#Check if no system arguments (options) entered
    	if len(sys.argv) == 1:
    		print "%s: error: %s\n" % (sys.argv[0], "No command options given")
    		parser.print_help()
    		sys.exit(3)
    	#Usage parameters for spatial database connection
    	database_type = options.Database_type.upper()
    	instance = options.Instance
    	database = options.Database.lower()	
    	account_authentication = options.Account_authentication.upper()
    	dbms_admin = options.Dbms_admin
    	dbms_admin_pwd = options.Dbms_admin_pwd
    	dbuser = options.dbuser
    	dbuser_pwd = options.dbuser_pwd	
    	tablespace = options.Tablespace
    	user_type = options.user_type
    	role = options.role
    	
    	if (database_type == "SQLSERVER"):
    		database_type = "SQL_SERVER"
    	
    	if( database_type ==""):	
    		print(" \n%s: error: \n%s\n" % (sys.argv[0], "DBMS type (--DBMS) must be specified."))
    		parser.print_help()
    		sys. exit(3)		
    	
    	if(database_type == "SQL_SERVER"):
    		if( account_authentication == "DATABASE_AUTH" and dbms_admin == ""):
    			print("\n%s: error: %s\n" % (sys.argv[0], "DBMS administrator must be specified with database authentication"))
    			sys.exit(3)
    		if( account_authentication == "OPERATING_SYSTEM_AUTH" and dbms_admin != ""):
    			print("\nWarning: %s\n" % ("Ignoring DBMS administrator specified when using operating system authentication..."))
    	else:		
    		if( dbuser.lower() == ""):
    			print("\n%s: error: %s\n" % (sys.argv[0], "Database user must be specified."))
    			sys.exit(3)		
    		if( dbms_admin == ""):
    			print("\n%s: error: %s\n" % (sys.argv[0], "DBMS administrator must be specified!"))
    			sys.exit(3)
    	if ( user_type == "DATABASE_USER" and (dbuser =="" or dbuser_pwd =="")):
    		print(" \n%s: error: \n%s\n" % (sys.argv[0], "To create database authenticated user, user name and password must be specified!"))
    		parser.print_help()
    		sys.exit(3)	
    	# Get the current product license
    	product_license=arcpy. ProductInfo()
    	
    	# Checks required license level
    	if product_license.upper() == "ARCVIEW" or product_license.upper() == 'ENGINE':
    		print("\n" + product_license + " license found!" + "  Creating a user in an enterprise geodatabase or database requires an ArcGIS Desktop Standard or Advanced, ArcGIS Engine with the Geodatabase Update extension, or ArcGIS Server license.")
    		sys.exit("Re-authorize ArcGIS before creating a database user.")
    	else:
    		print("\n" + product_license + " license available!  Continuing to create...")
    		arcpy.AddMessage("+++++++++")
    	# Local variables
    	instance_temp = instance.replace("\\","_")
    	instance_temp = instance_temp.replace("/","_")
    	instance_temp = instance_temp.replace(":","_")
    	Conn_File_NameT = instance_temp + "_" + database + "_" + dbms_admin   
    	if os.environ.get("TEMP") == None:
    		temp = "c:\\temp"	
    	else:
    		temp = os.environ.get("TEMP")
    	
    	if os.environ.get("TMP") == None:
    		temp = "/usr/tmp"		
    	else:
    		temp = os.environ.get("TMP")  
    	Connection_File_Name = Conn_File_NameT + ". sde"
    	Connection_File_Name_full_path = temp + os.sep + Conn_File_NameT + ".sde"
    	
    	# Check for the .sde file and delete it if present
    	arcpy.env.overwriteOutput=True
    	if os.path.exists(Connection_File_Name_full_path):
    		os.remove(Connection_File_Name_full_path)
    	try:
    		print("\nCreating Database Connection File...\n")
    		# Process: Create Database Connection File...
    		# Usage:  out_file_location, out_file_name, DBMS_TYPE, instnace, database, account_authentication, username, password, save_username_password(must be true)
    		#arcpy.CreateDatabaseConnection_management(temp , Connection_File_Name, database_type, instance, database, account_authentication, dbms_admin, dbms_admin_pwd, "TRUE")
    		arcpy.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, password=dbms_admin_pwd, save_user_pass="TRUE")
    	        for i in range(arcpy. GetMessageCount()):
    			if "000565" in arcpy.GetMessage(i):   #Check if database connection was successful
    				arcpy.AddReturnMessage(i)
    				arcpy.AddMessage("\n+++++++++")
    				arcpy.AddMessage("Exiting!!")
    				arcpy.AddMessage("+++++++++\n")
    				sys.exit(3)            
    			else:
    				arcpy.AddReturnMessage(i)
    				arcpy.AddMessage("+++++++++\n")
    		print("Creating database user...\n")
    		arcpy.CreateDatabaseUser_management(input_workspace=Connection_File_Name_full_path, user_authentication_type=user_type, user_name=dbuser, user_password=dbuser_pwd, role=role, tablespace_name=tablespace)
    		for i in range(arcpy.GetMessageCount()):
    			arcpy.AddReturnMessage(i)
    		arcpy.AddMessage("+++++++++\n")
    	except:
    		for i in range(arcpy.GetMessageCount()):
    			arcpy.AddReturnMessage(i)
    			
    #Check if no value entered for option	
    except SystemExit as e:
    	if e.code == 2:
    		parser.usage = ""
    		print("\n")
    		parser.print_help()   
    		parser.exit(2)
    

    Вы можете запустить скрипт на компьютере с установленным ArcGIS Desktop (Standard или Advanced), ArcGIS Server (Standard или Advanced) или ArcGIS Engine с дополнительным модулем Geodatabase Update.

  2. Сохраните файл с расширением .py.
  3. Запустите скрипт, задав опции и указав сведения, соответствующие вашему экземпляру SQL Server и пользователю, которого вы хотите создать.

    В следующем примере имя созданного скрипта – create_database_user.py. В экземпляре SQL Server ssi5 создана учетная запись с аутентификацией SQL Server (gisd_owner), а также соответствующая схема и пользователь созданы а в базе данных 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 или —help в командной строке для вывода справки синтаксиса.

Теперь ваша база данных содержит пользователя, который может создавать таблицы.

Есть несколько способов, с помощью которых владелец данных может создавать таблицы в базе данных или геоданных. Сведения о создании таблиц средствами ArcGIS см. в разделе Обзор добавления наборов данных в базу геоданных.

Так как набор данных существует, их владелец может предоставлять права доступа к данным другим пользователям. Инструкции см. в разделе Предоставление и отзыв прав доступа к наборам данных.

Создание учетных записей и пользователей с помощью инструментов SQL Server

Если вы хотите создать пользователя, которые имеет права, отличающиеся от предоставляемых инструментом Создать пользователя базы данных, или не имеет прав, предоставленным непосредственно ему, вы можете воспользоваться для этого инструментами SQL Server. Существует несколько вещей, о которых нужно помнить при создании собственных учетных записей и пользователей, которые будут использоваться с ArcGIS:

  • Все пользователи базы данных, которые будут создавать данные, должны иметь схему базы данных. Эта схема должна иметь то же имя, что и пользователь.
  • Вы можете предоставить группе Windows доступ к SQL Server, вместо использования отдельных учетных записей Windows, что упростит создание и управление учетными записями. Все участники группы Windows могут подключаться к SQL Server. Права доступа к серверу, базе данных или набору данных предоставленные группе, автоматически применяется к каждому участнику группы. Тем не менее, вы не можете создать одну схему для хранения данных, созданных всеми участниками группы. Каждый пользователь в группе, который создает данные в базе геоданных, должен иметь собственную схему, где хранятся данные. SQL Server создает пользователя и схему в базе данных при первой попытке создания данных участником группы. Это происходит автоматически; вручную создавать схему и пользователя не нужно.

Инструкции по использованию инструментов SQL Server для создания учетных записей, пользователей и схем смотри в документации к Microsoft SQL Server.

Создать пользователя базы данных — SQL Server

Редактировать

Твиттер

LinkedIn

Фейсбук

Электронная почта

  • Статья

Применяется к: SQL Server Azure SQL База данных Azure SQL Управляемый экземпляр Azure Synapse Analytics Analytics Platform System (PDW)

В этом разделе описывается создание наиболее распространенных типов пользователей базы данных. Существует одиннадцать типов пользователей. Полный список приведен в разделе СОЗДАНИЕ ПОЛЬЗОВАТЕЛЯ (Transact-SQL). Все разновидности SQL Server поддерживают пользователей базы данных, но не обязательно всех типов пользователей.

Вы можете создать пользователя базы данных с помощью SQL Server Management Studio или с помощью Transact-SQL.

Общие сведения о типах пользователей

Management Studio предоставляет 6 вариантов при создании пользователя базы данных. На следующем рисунке показаны 6 параметров в зеленом поле и указано, что они представляют.

Выбор типа пользователя

Логин или пользователь, не сопоставленный с логином

Если вы новичок в SQL Server, может быть трудно определить, какой тип пользователя вы хотите создать. Сначала спросите себя, есть ли у человека или группы, которым необходимо получить доступ к базе данных, логин? Логины в базе данных master являются общими для людей, которые управляют SQL Server, и для людей, которым требуется доступ ко многим или ко всей базе данных на экземпляре SQL Server. Для этой ситуации вы создадите Пользователь SQL с логином . Пользователь базы данных — это идентификатор входа в систему, когда он подключен к базе данных. Пользователь базы данных может использовать то же имя, что и логин, но это не обязательно. В этом разделе предполагается, что имя входа уже существует в SQL Server. Сведения о том, как создать логин, см. в разделе Создание логина

. Если у человека или группы, которым требуется доступ к базе данных, нет логина и если им нужен доступ только к одной или нескольким базам данных, создайте пользователя Windows или Пользователь SQL с паролем . Также называемый пользователем автономной базы данных, он не связан с логином в базе данных master. Это отличный выбор, если вы хотите легко перемещать базу данных между экземплярами SQL Server. Чтобы использовать этот параметр в SQL Server 2016 (13.x), администратор должен сначала включить автономные базы данных для SQL Server, а база данных должна быть включена для изолирования. Дополнительные сведения см. в разделе Пользователи автономной базы данных — создание переносимой базы данных.

Важно

При подключении в качестве пользователя автономной базы данных вы должны указать имя базы данных как часть строки подключения. Чтобы указать базу данных в Management Studio, в диалоговом окне Connect to щелкните Options , а затем перейдите на вкладку Connection Properties .

Выберите пользователя SQL с паролем или пользователя SQL с именем входа на основе имени входа для проверки подлинности SQL Server , если подключающееся лицо не может пройти проверку подлинности с помощью Windows. Это обычное дело, когда люди за пределами вашей организации (например, клиенты) подключаются к вашему SQL Server.

Совет

Для сотрудников вашей организации лучше использовать проверку подлинности Windows, поскольку им не нужно запоминать дополнительный пароль, а проверка подлинности Windows предлагает дополнительные функции безопасности, такие как Kerberos.

Фон

Пользователь является участником безопасности на уровне базы данных. Логины должны быть сопоставлены с пользователем базы данных для подключения к базе данных. Логин может быть сопоставлен с разными базами данных как разные пользователи, но может быть сопоставлен только как один пользователь в каждой базе данных. В частично автономной базе данных можно создать пользователя, не имеющего логина. Дополнительные сведения о пользователях автономной базы данных см. в разделе CREATE USER (Transact-SQL). Если гостевой пользователь в базе данных включен, логин, не сопоставленный с пользователем базы данных, может войти в базу данных как гостевой пользователь.

Важно

Пользователь-гость обычно отключен. Не включайте гостевого пользователя, если в этом нет необходимости.

В качестве субъекта безопасности пользователям могут быть предоставлены разрешения. Областью действия пользователя является база данных. Чтобы подключиться к определенной базе данных на экземпляре SQL Server, имя входа должно быть сопоставлено с пользователем базы данных. Разрешения внутри базы данных предоставляются и запрещаются пользователю базы данных, а не логину.

Разрешения

Требуется ИЗМЕНИТЬ ЛЮБОГО ПОЛЬЗОВАТЕЛЯ 9Разрешение 0018 на базу данных.

Создайте пользователя с помощью SSMS

  1. В обозревателе объектов разверните папку Базы данных .

  2. Разверните базу данных, в которой нужно создать нового пользователя базы данных.

  3. Щелкните правой кнопкой мыши папку Security , выберите New и выберите User. .. .

  4. В диалоговом окне Пользователь базы данных — Новый на странице Общие выберите один из следующих типов пользователей из Тип пользователя список:

    • Пользователь SQL с логином

    • Пользователь SQL с паролем

    • Пользователь SQL без входа в систему

    • Пользователь сопоставлен с сертификатом

    • Пользователь сопоставлен с асимметричным ключом

    • Пользователь Windows

  5. При выборе параметра остальные параметры в диалоговом окне могут измениться. Некоторые параметры применяются только к определенным типам пользователей базы данных. Некоторые параметры можно оставить пустыми, и для них будут использоваться значения по умолчанию.

    Имя пользователя
    Введите имя нового пользователя. Если вы выбрали пользователя Windows из списка Тип пользователя , вы также можете щелкнуть многоточие (…) , чтобы открыть диалоговое окно Select User or Group .

    Логин
    Введите логин для пользователя. В качестве альтернативы щелкните многоточие (…) , чтобы открыть диалоговое окно Select Login . Имя для входа доступно, если вы выберете Пользователь SQL с логином или Пользователь Windows из списка User type .

    Пароль и Подтверждение пароля
    Введите пароль для пользователей, которые аутентифицируются в базе данных.

    Язык по умолчанию
    Введите язык пользователя по умолчанию.

    Схема по умолчанию
    Введите схему, которой будут принадлежать объекты, созданные этим пользователем. В качестве альтернативы щелкните многоточие (…) , чтобы открыть Выберите диалоговое окно «Схема ». Схема по умолчанию доступна, если вы выберете пользователя SQL с логином , пользователя SQL без логина или пользователя Windows из списка Тип пользователя .

    Имя сертификата
    Введите сертификат, который будет использоваться для пользователя базы данных. В качестве альтернативы щелкните многоточие (…) , чтобы открыть диалоговое окно Select Certificate . Имя сертификата доступно при выборе Пользователь сопоставлен с сертификатом из списка Тип пользователя .

    Имя асимметричного ключа
    Введите ключ, который будет использоваться для пользователя базы данных. В качестве альтернативы щелкните многоточие (. ..) , чтобы открыть диалоговое окно Выберите асимметричный ключ . Имя асимметричного ключа доступно, если выбрать Пользователь, сопоставленный с асимметричным ключом из списка Тип пользователя .

  6. Выберите ОК .

Дополнительные параметры

Диалоговое окно Пользователь базы данных — Новый также предлагает параметры на четырех дополнительных страницах: Собственные схемы , Членство , Защищаемые объекты и Расширенные свойства .

  • На странице Owned Schemas перечислены все возможные схемы, которыми может владеть новый пользователь базы данных. Чтобы добавить схемы пользователю базы данных или удалить их из него, в разделе Схемы, принадлежащие этому пользователю установите или снимите флажки рядом со схемами.

  • На странице Membership перечислены все возможные роли членства в базе данных, которыми может владеть новый пользователь базы данных. Чтобы добавить роли или удалить их из пользователя базы данных, в разделе Членство в роли базы данных установите или снимите флажки рядом с ролями.

  • На странице Защищаемые объекты перечислены все возможные защищаемые объекты и разрешения для этих защищаемых объектов, которые могут быть предоставлены для входа в систему.

  • Страница расширенных свойств позволяет добавлять настраиваемые свойства для пользователей базы данных. На этой странице доступны следующие опции.

    База данных
    Отображает имя выбранной базы данных. Это поле доступно только для чтения.

    Сопоставление
    Отображает сопоставление, используемое для выбранной базы данных. Это поле доступно только для чтения.

    Свойства
    Просмотрите или укажите расширенные свойства объекта. Каждое расширенное свойство состоит из пары метаданных имя/значение, связанных с объектом.

    Многоточие (…)
    Щелкните многоточие (…) после Значение , чтобы открыть диалоговое окно Значение для расширенного свойства . Введите или просмотрите значение расширенного свойства в этом большем месте. Дополнительные сведения см. в разделе Диалоговое окно «Значение для расширенного свойства».

    Удалить
    Удаляет выбранное расширенное свойство.

Создать пользователя с помощью T-SQL

  1. В Object Explorer , подключитесь к экземпляру Database Engine.

  2. На панели Standard нажмите New Query .

  3. Скопируйте и вставьте следующий пример в окно запроса и нажмите Выполнить .

     -- Создает логин AbolrousHazem с паролем '340$Uuxwp7Mcxo7Khy'.
    СОЗДАТЬ ВХОД
        С ПАРОЛЕМ = '340$Uuxwp7Mcxo7Khy';
    ИДТИ
    -- Создает пользователя базы данных для входа, созданного выше.
    СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ AbolrousHazem ДЛЯ ВХОДА AbolrousHazem;
    ИДТИ
     

Дополнительные сведения см. в разделе СОЗДАНИЕ ПОЛЬЗОВАТЕЛЯ (Transact-SQL), содержащем множество других примеров Transact-SQL.

См. также

Участники (модуль базы данных)
Создать логин
CREATE LOGIN (Transact-SQL)

Обратная связь

Просмотреть все отзывы о странице

СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ (Transact-SQL) — SQL Server

  • Статья

Применяется к: SQL Server Azure SQL База данных Azure SQL Управляемый экземпляр Azure Synapse Analytics Analytics Platform System (PDW)

Добавляет пользователя в текущую базу данных. Ниже перечислены 13 типов пользователей с примером самого основного синтаксиса:

Пользователи на основе логинов в мастере — это наиболее распространенный тип пользователей.

Пользователи, которые аутентифицируются в базе данных — рекомендуется, чтобы сделать вашу базу данных более переносимой.
Всегда разрешено в базе данных SQL. Разрешено только в автономной базе данных в SQL Server.

  • Пользователь, основанный на пользователе Windows, у которого нет входа в систему. СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ [Contoso\Fritz];

  • Пользователь из группы Windows, не имеющий логина. СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ [Contoso\Sales];

  • Пользователь в базе данных SQL или Azure Synapse Analytics на основе пользователя Azure Active Directory. СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ [[email protected]] ОТ ВНЕШНЕГО ПОСТАВЩИКА;

  • Пользователь содержащейся базы данных с паролем. (Недоступно в Azure Synapse Analytics.) CREATE USER Mary WITH PASSWORD = '********';

Пользователи на основе принципалов Windows, которые подключаются через групповые входы Windows

  • Пользователь, основанный на пользователе Windows, у которого нет входа в систему, но который может подключиться к компоненту Database Engine через членство в группе Windows. СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ [Contoso\Fritz];

  • Пользователь из группы Windows, у которого нет входа в систему, но который может подключиться к компоненту Database Engine через членство в другой группе Windows. СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ [Contoso\Fritz];

Пользователи, которые не могут пройти аутентификацию — эти пользователи не могут войти в SQL Server или базу данных SQL.

  • Пользователь без логина. Не удается войти в систему, но могут быть предоставлены разрешения. СОЗДАТЬ ПОЛЬЗОВАТЕЛЬСКОЕ CustomApp БЕЗ ВХОДА;
  • Пользователь на основе сертификата. Не удается войти в систему, но могут быть предоставлены разрешения и могут подписывать модули. CREATE USER TestProcess ДЛЯ СЕРТИФИКАТА CarnationProduction50;
  • Пользователь на основе асимметричного ключа. Не удается войти в систему, но могут быть предоставлены разрешения и могут подписывать модули. CREATE User TestProcess FROM ASYMMETRIC KEY PacificSales09;

Соглашения о синтаксисе Transact-SQL

Синтаксис

 -- Синтаксис для SQL Server, Базы данных SQL Azure и Управляемого экземпляра Azure SQL
  
-- Синтаксис Пользователи на основе логинов в master
СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ user_name
    [
        { ЗА | ОТ } ВХОД имя_логина
    ]
    [С  [ ,... ] ]
[ ; ]
  
-- Пользователи, которые аутентифицируются в базе данных
СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ
    {
      windows_principal [С  [ ,... ] ]
  
    | user_name WITH PASSWORD = 'password' [ ,  [ ,... ]
    | Azure_Active_Directory_principal ОТ ВНЕШНЕГО ПОСТАВЩИКА
    }
  
 [ ; ]
  
-- Пользователи, основанные на принципалах Windows, которые подключаются через групповые логины Windows. 
СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ
    {
          windows_principal [ { ДЛЯ | ОТ } ВХОД windows_principal ]
        | имя_пользователя { ДЛЯ | ОТ } ВХОД windows_principal
}
    [С  [ ,... ] ]
[ ; ]
  
-- Пользователи, которые не могут аутентифицироваться
СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ user_name
    {
         БЕЗ ВХОДА [С  [ ,... ] ]
       | { ЗА | ОТ } СЕРТИФИКАТ cert_name
       | { ЗА | FROM } АСИММЕТРИЧНЫЙ КЛЮЧ asym_key_name
    }
 [ ; ]
  
<список_опций> ::=
      DEFAULT_SCHEMA = имя_схемы
    | DEFAULT_LANGUAGE = {НЕТ | жк | название языка | псевдоним языка }
    | SID = Сид
    | ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ВКЛ | ВЫКЛЮЧЕННЫЙ ] ]
  
 ::=
      DEFAULT_SCHEMA = имя_схемы]
    | ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ВКЛ | ВЫКЛЮЧЕННЫЙ ] ]
  
-- Синтаксис базы данных SQL при подключении к члену федерации
СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ user_name
[;]
-- Синтаксис для пользователей, основанный на учетных записях Azure AD для Управляемого экземпляра Azure SQL. 
СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ user_name
    [ { ЗА | ОТ } ВХОД имя_логина ]
    | ОТ ВНЕШНЕГО ПОСТАВЩИКА
    [С  [ ,... ] ]
[ ; ]
 ::=
      DEFAULT_SCHEMA = имя_схемы
    | DEFAULT_LANGUAGE = {НЕТ | жк | название языка | псевдоним языка }
    | ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ВКЛ | ВЫКЛЮЧЕННЫЙ ] ]
 

Примечание

Администратор Azure AD для функций управляемого экземпляра SQL Azure после создания изменился. Дополнительные сведения см. в статье Новые функции администрирования Azure AD для MI.

 -- Синтаксис для Azure Synapse Analytics
  
СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ user_name
    [ { { ЗА | ОТ } {ВХОД имя_логина}
      | БЕЗ ВХОДА
    ]
    [ WITH DEFAULT_SCHEMA = имя_схемы ]
[;]
СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ Azure_Active_Directory_principal ОТ ВНЕШНЕГО ПОСТАВЩИКА
    [ WITH DEFAULT_SCHEMA = имя_схемы ]
[;]
 
 -- Синтаксис для параллельного хранилища данных
  
СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ user_name
    [ { { ЗА | ОТ }
      {
        ВХОД
      }
      | БЕЗ ВХОДА
    ]
    [ WITH DEFAULT_SCHEMA = имя_схемы ]
[;]
 

Примечание

Чтобы просмотреть синтаксис Transact-SQL для SQL Server 2014 и более ранних версий, см. документацию по предыдущим версиям.

Аргументы

user_name

Указывает имя, по которому пользователь идентифицируется в этой базе данных. user_name — это системное имя . Он может содержать до 128 символов. При создании пользователя на основе принципала Windows имя участника Windows становится именем пользователя, если не указано другое имя пользователя.

LOGIN

login_name

Указывает имя входа, для которого создается пользователь базы данных. login_name должен быть действительным логином на сервере. Это может быть вход на основе субъекта Windows (пользователь или группа), вход с использованием проверки подлинности SQL Server или вход с использованием субъекта Azure AD (пользователь, группа или приложение). Когда этот логин SQL Server входит в базу данных, он получает имя и идентификатор создаваемого пользователя базы данных. При создании логина, сопоставленного с субъектом Windows, используйте формат [ <имя_домена> \ <имя_логина> ] . Примеры см. в разделе Обзор синтаксиса.

Если инструкция CREATE USER является единственной инструкцией в пакете SQL, база данных SQL Azure поддерживает предложение WITH LOGIN. Если оператор CREATE USER не является единственным оператором в пакете SQL или выполняется в динамическом SQL, предложение WITH LOGIN не поддерживается.

WITH DEFAULT_SCHEMA =

имя_схемы

Задает первую схему, в которой будет искать сервер при разрешении имен объектов для этого пользователя базы данных.

windows_principal

Указывает участника Windows, для которого создается пользователь базы данных. windows_principal может быть пользователем Windows или группой Windows. Пользователь будет создан, даже если windows_principal не имеет логина. При подключении к SQL Server, если windows_principal не имеет логина, участник Windows должен пройти аутентификацию в компоненте Database Engine через членство в группе Windows, которая имеет логин, или в строке подключения должна быть указана автономная база данных в качестве начальной. каталог. При создании пользователя из принципала Windows используйте формат [ <имя_домена> \ <имя_логина> ] . Примеры см. в разделе Обзор синтаксиса. Пользователи, основанные на пользователях Active Directory, могут иметь имена длиной менее 21 символа.

Azure_Active_Directory_principal

Применяется к : База данных SQL, Управляемый экземпляр SQL, Azure Synapse Analytics.

Указывает субъект Azure Active Directory, для которого создается пользователь базы данных. Azure_Active_Directory_principal может быть пользователем Azure Active Directory, группой Azure Active Directory или приложением Azure Active Directory. (Пользователи Azure Active Directory не могут иметь учетные записи Windows Authentication в базе данных SQL; только пользователи базы данных.) Строка подключения должна указывать автономную базу данных в качестве исходного каталога.

Для субъектов Azure AD синтаксис CREATE USER требует:

  • UserPrincipalName объекта Azure AD для пользователей Azure AD.

    • СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ [[email protected]] ОТ ВНЕШНЕГО ПОСТАВЩИКА;
    • СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ [[email protected]] ОТ ВНЕШНЕГО ПОСТАВЩИКА;
  • Субъекты сервера Azure Active Directory (Azure AD) (логины) представляют создание пользователей, которые сопоставляются с логинами Azure AD в виртуальной главной базе данных. СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ [[email protected]] ИЗ ВХОДА [[email protected]]

  • Пользователи Azure AD и субъекты-службы (приложения Azure AD), которые являются членами более 2048 групп безопасности Azure AD, не поддерживаются для входа в базу данных в базе данных SQL, управляемом экземпляре SQL или Azure Synapse.

  • DisplayName объекта Azure AD для групп Azure AD и приложений Azure AD. Если бы у вас была группа безопасности Nurses , вы бы использовали:

    • СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ [Медсестры] ОТ ВНЕШНЕГО ПОСТАВЩИКА;

Дополнительные сведения см. в разделе Подключение к базе данных SQL с помощью проверки подлинности Azure Active Directory.

WITH PASSWORD = ‘

пароль

Применяется к : SQL Server 2012 (11.x) и более поздние версии, база данных SQL.

Может использоваться только в автономной базе данных. Указывает пароль для создаваемого пользователя. Начиная с SQL Server 2012 (11.x), информация о хранимом пароле вычисляется с использованием SHA-512 для пароля с солью.

WITHOUT LOGIN

Указывает, что пользователь не должен сопоставляться с существующим логином.

CERTIFICATE

cert_name

Применяется к : SQL Server 2008 (10.0.x) и более поздние версии, база данных SQL.

Указывает сертификат, для которого создается пользователь базы данных.

АСИММЕТРИЧНЫЙ КЛЮЧ

asym_key_name

Применяется к : SQL Server 2008 (10.0.x) и более поздние версии, база данных SQL.

Указывает асимметричный ключ, для которого создается пользователь базы данных.

DEFAULT_LANGUAGE =

{НЕТ | | <название языка> | }

Применяется к : SQL Server 2012 (11.x) и более поздних версий, база данных SQL.

Указывает язык по умолчанию для нового пользователя. Если для пользователя указан язык по умолчанию, а затем язык базы данных по умолчанию изменен, язык пользователя по умолчанию остается таким, как указано. Если язык по умолчанию не указан, языком по умолчанию для пользователя будет язык по умолчанию базы данных. Если язык по умолчанию для пользователя не указан, а язык базы данных по умолчанию позже изменен, язык пользователя по умолчанию изменится на новый язык по умолчанию для базы данных.

Важно

DEFAULT_LANGUAGE используется только для пользователя автономной базы данных.

SID =

sid

Применяется к : SQL Server 2012 (11.x) и более поздних версий.

Применяется только к пользователям с паролями (проверка подлинности SQL Server) в автономной базе данных. Указывает SID нового пользователя базы данных. Если этот параметр не выбран, SQL Server автоматически назначает SID. Используйте параметр SID для создания пользователей в нескольких базах данных с одинаковым идентификатором (SID). Это полезно при создании пользователей в нескольких базах данных для подготовки к отработке отказа Always On. Чтобы определить SID пользователя, запросите sys.database_principals.

ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ВКЛ |

OFF ]

Применяется к : SQL Server 2016 (13.x) и более поздних версий, база данных SQL.

Подавляет проверки криптографических метаданных на сервере в операциях массового копирования. Это позволяет пользователю массово копировать зашифрованные данные между таблицами или базами данных без расшифровки данных. По умолчанию ВЫКЛ.

Предупреждение

Неправильное использование этого параметра может привести к повреждению данных. Дополнительные сведения см. в разделе Перенос конфиденциальных данных, защищенных с помощью Always Encrypted.

ОТ ВНЕШНЕГО ПОСТАВЩИКА

Применяется к : база данных SQL и управляемый экземпляр.
Указывает, что пользователь предназначен для проверки подлинности Azure AD.

Если параметр FOR LOGIN опущен, новый пользователь базы данных будет сопоставлен с именем входа SQL Server с тем же именем.

Схема по умолчанию будет первой схемой, которую будет искать сервер при разрешении имен объектов для этого пользователя базы данных. Если не указано иное, схема по умолчанию будет владельцем объектов, созданных этим пользователем базы данных.

Если у пользователя есть схема по умолчанию, будет использоваться эта схема по умолчанию. Если у пользователя нет схемы по умолчанию, но он является членом группы, имеющей схему по умолчанию, будет использоваться схема группы по умолчанию. Если у пользователя нет схемы по умолчанию, и он является членом более чем одной группы, схема по умолчанию для пользователя будет схемой группы Windows с наименьшим ИД_пользователя и явно заданной схемой по умолчанию. (Невозможно явно выбрать одну из доступных схем по умолчанию в качестве предпочтительной схемы.) Если для пользователя не может быть определена схема по умолчанию, 9Будет использоваться схема 0017 dbo .

DEFAULT_SCHEMA можно задать до создания схемы, на которую она указывает.

DEFAULT_SCHEMA нельзя указывать при создании пользователя, привязанного к сертификату или асимметричному ключу.

Значение DEFAULT_SCHEMA игнорируется, если пользователь является членом фиксированной серверной роли sysadmin. Все члены фиксированной серверной роли sysadmin имеют схему по умолчанию dbo .

Предложение WITHOUT LOGIN создает пользователя, который не сопоставлен с именем входа SQL Server. Он может подключаться к другим базам данных в качестве гостя. Разрешения могут быть назначены этому пользователю без входа в систему, и когда контекст безопасности изменяется на пользователя без входа в систему, исходные пользователи получают разрешения пользователя без входа в систему. См. пример D. Создание и использование пользователя без логина.

Символ обратной косой черты ( \ ) могут содержать только пользователи, сопоставленные с субъектами Windows.

CREATE USER нельзя использовать для создания гостевого пользователя, поскольку гостевой пользователь уже существует в каждой базе данных. Вы можете включить гостевого пользователя, предоставив ему право CONNECT, как показано:

 GRANT CONNECT TO guest;
ИДТИ
 

Информация о пользователях базы данных отображается в представлении каталога sys.database_principals.

Новое расширение синтаксиса, ОТ ВНЕШНЕГО ПОСТАВЩИКА доступен для создания учетных записей Azure AD на уровне сервера в базе данных SQL Azure и Управляемом экземпляре SQL Azure. Учетные записи Azure AD позволяют сопоставлять участников Azure AD на уровне базы данных с учетными записями Azure AD на уровне сервера. Чтобы создать пользователя Azure AD из имени входа Azure AD, используйте следующий синтаксис:

CREATE USER [AAD_principal] FROM LOGIN [Azure AD login]

При создании пользователя в базе данных SQL Azure имя_логина должно соответствовать к существующему входу в Azure AD или с помощью 9Предложение 0017 FROM EXTERNAL PROVIDER создаст только пользователя Azure AD без входа в основную базу данных. Например, эта команда создаст автономного пользователя:

CREATE USER [[email protected]] FROM EXTERNAL PROVIDER

Syntax Summary

Пользователи на основе логинов в мастере

Следующий список показывает возможный синтаксис для пользователей на основе логинов. Параметры схемы по умолчанию не указаны.

  • СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ [Domain1\WindowsUserBarry]
  • СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ [Domain1\WindowsUserBarry] ДЛЯ ВХОДА Domain1\WindowsUserBarry
  • СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ [Domain1\WindowsUserBarry] ИЗ РЕГИСТРАЦИИ Domain1\WindowsUserBarry
  • СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ [Domain1\WindowsGroupManagers]
  • СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ [Domain1\WindowsGroupManagers] ДЛЯ ВХОДА [Domain1\WindowsGroupManagers]
  • СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ [Domain1\WindowsGroupManagers] ИЗ ВХОДА [Domain1\WindowsGroupManagers]
  • СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ SQLAUTHLOGIN
  • СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ SQLAUTHLOGIN ДЛЯ ВХОДА SQLAUTHLOGIN
  • СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ SQLAUTHLOGIN ИЗ ВХОДА SQLAUTHLOGIN

Пользователи, которые проходят аутентификацию в базе данных

В следующем списке показан возможный синтаксис для пользователей, которые могут использоваться только в автономной базе данных. Созданные пользователи не будут связаны ни с одним входом в базу данных master . Схема по умолчанию и параметры языка не указаны.

Важно

Этот синтаксис предоставляет пользователям доступ к базе данных, а также предоставляет новый доступ к компоненту Database Engine.

  • СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ [Domain1\WindowsUserBarry]
  • СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ [Domain1\WindowsGroupManagers]
  • СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ Barry С ПАРОЛЕМ = 'sdjklalie8rew8337!$d'

Пользователи, основанные на принципалах Windows без входа в основную систему

В следующем списке показан возможный синтаксис для пользователей, которые имеют доступ к компоненту Database Engine через группу Windows, но не имеют входа в мастер . Этот синтаксис можно использовать во всех типах баз данных. Схема по умолчанию и параметры языка не указаны.

Этот синтаксис подобен пользователям, основанным на логинах в мастере, но эта категория пользователей не имеет логина в мастере. Пользователь должен иметь доступ к компоненту Database Engine через групповой логин Windows.

Этот синтаксис похож на пользователей автономной базы данных, основанных на участниках Windows, но эта категория пользователей не получает новый доступ к компоненту Database Engine.

  • СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ [Domain1\WindowsUserBarry]
  • СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ [Domain1\WindowsUserBarry] ДЛЯ ВХОДА Domain1\WindowsUserBarry
  • СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ [Domain1\WindowsUserBarry] ИЗ РЕГИСТРАЦИИ Domain1\WindowsUserBarry
  • СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ [Domain1\WindowsGroupManagers]
  • СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ [Domain1\WindowsGroupManagers] ДЛЯ ВХОДА [Domain1\WindowsGroupManagers]
  • СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ [Domain1\WindowsGroupManagers] ИЗ ВХОДА [Domain1\WindowsGroupManagers]

Пользователи, которые не могут пройти аутентификацию

В следующем списке показан возможный синтаксис для пользователей, которые не могут войти в SQL Server.

  • СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ БЕЗ ВХОДА
  • СОЗДАТЬ СЕРТИФИКАТ ПОЛЬЗОВАТЕЛЯ ДЛЯ СЕРТИФИКАТА SpecialCert
  • СОЗДАТЬ СЕРТИФИКАТ ПОЛЬЗОВАТЕЛЯ ПОЛЬЗОВАТЕЛЯ ИЗ СЕРТИФИКАТА SpecialCert
  • CREATE USER KEYUSER ДЛЯ АСИММЕТРИЧНОГО КЛЮЧА SecureKey
  • СОЗДАТЬ КЛЮЧ ПОЛЬЗОВАТЕЛЯ ПОЛЬЗОВАТЕЛЯ ИЗ АСИММЕТРИЧНОГО КЛЮЧА SecureKey

Безопасность

Создание пользователя предоставляет доступ к базе данных, но не предоставляет автоматически никакого доступа к объектам в базе данных. После создания пользователя обычными действиями являются добавление пользователей к ролям базы данных, у которых есть разрешение на доступ к объектам базы данных, или предоставление пользователю разрешений на доступ к объектам. Сведения о разработке системы разрешений см. в разделе Начало работы с разрешениями ядра СУБД.

Особые указания для автономных баз данных

При подключении к автономной базе данных, если у пользователя нет входа в базу данных master , строка подключения должна включать имя автономной базы данных в качестве начального каталога. Параметр начального каталога всегда требуется для пользователя автономной базы данных с паролем.

В автономной базе данных создание пользователей помогает отделить базу данных от экземпляра компонента Database Engine, чтобы базу данных можно было легко переместить в другой экземпляр SQL Server. Дополнительные сведения см. в разделах Автономные базы данных и Пользователи автономных баз данных — создание переносимой базы данных. Чтобы изменить пользователя базы данных с пользователя, основанного на входе в систему проверки подлинности SQL Server, на пользователя автономной базы данных с паролем, см. sp_migrate_user_to_contained (Transact-SQL).

В автономной базе данных пользователям не обязательно иметь логины в базе данных master . Администраторы компонента Database Engine должны понимать, что доступ к автономной базе данных может предоставляться на уровне базы данных, а не на уровне компонента Database Engine. Дополнительные сведения см. в разделе Рекомендации по обеспечению безопасности с автономными базами данных.

При использовании пользователей автономной базы данных в базе данных SQL Azure настройте доступ с помощью правила брандмауэра уровня базы данных, а не правила брандмауэра уровня сервера. Дополнительные сведения см. в разделе sp_set_database_firewall_rule (база данных SQL Azure).

Для пользователей баз данных SQL и Azure Synapse Analytics, содержащихся в базе данных, SSMS может поддерживать многофакторную проверку подлинности. Дополнительные сведения см. в разделе Поддержка SSMS для Azure AD MFA с базой данных SQL и Azure Synapse Analytics.

Разрешения

Требуется разрешение ALTER ANY USER для базы данных.

Примеры

A. Создание пользователя базы данных на основе имени входа SQL Server

В следующем примере сначала создается имя входа SQL Server с именем AbolrousHazem , а затем создает соответствующего пользователя базы данных AbolrousHazem в AdventureWorks2012 .

 СОЗДАТЬ ВХОД AbolrousHazem
    С ПАРОЛЕМ = '340$Uuxwp7Mcxo7Khy';
 

Переход к пользовательской базе данных. Например, в SQL Server используйте инструкцию USE AdventureWorks2012 . В Azure Synapse Analytics and Analytics Platform System (PDW) необходимо установить новое подключение к пользовательской базе данных.

 СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ AbolrousHazem ДЛЯ ВХОДА AbolrousHazem;
ИДТИ
 

B. Создание пользователя базы данных со схемой по умолчанию

В следующем примере сначала создается логин сервера с именем WanidaBenshoof с паролем, а затем создается соответствующий пользователь базы данных Wanida со схемой по умолчанию Marketing .

 СОЗДАТЬ ВХОД WanidaBenshoof
    С ПАРОЛЕМ = '8fdKJl3$nlNv3049jsKK';
ИСПОЛЬЗУЙТЕ AdventureWorks2012;
СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ Wanida ДЛЯ ВХОДА WanidaBenshoof
    WITH DEFAULT_SCHEMA = Маркетинг;
ИДТИ
 

C. Создание пользователя базы данных на основе сертификата

В следующем примере создается пользователь базы данных JinghaoLiu на основе сертификата CarnationProduction50 .

Применяется к : SQL Server 2008 (10.0.x) и более поздних версий.

 ИСПОЛЬЗОВАТЬ AdventureWorks2012;
СОЗДАТЬ СЕРТИФИКАТ
    WITH SUBJECT = 'Инспекторы по производству гвоздик',
    EXPIRY_DATE = '11.11.2011';
ИДТИ
СОЗДАЙТЕ ПОЛЬЗОВАТЕЛЯ JinghaoLiu ДЛЯ СЕРТИФИКАТА CarnationProduction50;
ИДТИ
 

D. Создание и использование пользователя без имени входа

В следующем примере создается пользователь базы данных CustomApp , который не сопоставляется с именем входа SQL Server. Затем в примере пользователю adventure-works\tengiz0 предоставляется разрешение выдавать себя за пользователя CustomApp .

 ИСПОЛЬЗОВАТЬ AdventureWorks2012 ;
СОЗДАТЬ ПОЛЬЗОВАТЕЛЬСКОЕ CustomApp БЕЗ ВХОДА;
GRANT IMPERSONATE ON USER::CustomApp TO [adventure-works\tengiz0] ;
ИДТИ
 

Для использования CustomApp , пользователь adventure-works\tengiz0 выполняет следующую инструкцию.

 ВЫПОЛНИТЬ ОТ ПРАВА ПОЛЬЗОВАТЕЛЯ = 'CustomApp' ;
ИДТИ
 

Чтобы вернуться к учетным данным adventure-works\tengiz0 , пользователь выполняет следующую инструкцию.

 ОБРАТНЫЙ ;
ИДТИ
 

E. Создание пользователя автономной базы данных с паролем

В следующем примере создается пользователь автономной базы данных с паролем. Этот пример можно выполнить только в автономной базе данных.

Применяется к : SQL Server 2012 (11.x) и более поздних версий. Этот пример работает в базе данных SQL, если DEFAULT_LANGUAGE удален.

 ИСПОЛЬЗОВАТЬ AdventureWorks2012 ;
ИДТИ
СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ Карло
С ПАРОЛЕМ='RN92piTCh%$!~3K9844 Bl*'
    , DEFAULT_LANGUAGE=[бразильский]
    , DEFAULT_SCHEMA=[dbo]
ИДТИ
 

F. Создание пользователя автономной базы данных для входа в домен

В следующем примере создается пользователь автономной базы данных для имени входа Fritz в домене Contoso. Этот пример можно выполнить только в автономной базе данных.

Применяется к : SQL Server 2012 (11.x) и более поздних версий.

 ИСПОЛЬЗОВАТЬ AdventureWorks2012 ;
ИДТИ
СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ [Contoso\Fritz] ;
ИДТИ
 

G.

Создание пользователя автономной базы данных с определенным SID

В следующем примере создается аутентифицированный SQL Server пользователь автономной базы данных с именем CarmenW. Этот пример можно выполнить только в автономной базе данных.

Применяется к : SQL Server 2012 (11.x) и более поздних версий.

 ИСПОЛЬЗОВАТЬ AdventureWorks2012 ;
ИДТИ
СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ CarmenW С ПАРОЛЕМ = 'a8ea v*(Rd##+'
, SID = 0x010500000000000000063FF0451A9E7664BA705B10E37DDC4B7;
 

H. Создание пользователя для копирования зашифрованных данных

В следующем примере создается пользователь, который может копировать данные, защищенные функцией Always Encrypted, из одного набора таблиц, содержащих зашифрованные столбцы, в другой набор таблиц с зашифрованными столбцами ( в той же или другой базе данных). Дополнительные сведения см. в разделе Перенос конфиденциальных данных, защищенных с помощью Always Encrypted.

Применяется к : SQL Server 2016 (13. x) и более поздних версий, база данных SQL.

 СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ [Чин]
С
      DEFAULT_SCHEMA = дбо
    , ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = ВКЛ ;
 

Чтобы создать пользователя Azure AD из имени входа Azure AD, используйте следующий синтаксис.

Войдите на свой сервер SQL или управляемый экземпляр, используя имя входа Azure AD, предоставленное с ролью sysadmin в управляемом экземпляре или ролью loginmanager в базе данных SQL. Далее создается пользователь Azure AD [email protected] из имени входа [email protected] 9.0401 . Этот логин был создан в примере CREATE LOGIN.

 СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ [[email protected]] ИЗ ВХОДА [[email protected]];
ИДТИ
 

Важно

При создании USER из имени входа Azure AD укажите user_name как то же самое login_name из LOGIN .

Поддерживается создание пользователя Azure AD как группы из имени входа Azure AD, которое является группой.