Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

SQL картографира влизане към съществуващ потребител

За да съгласувате потребителя с данните за влизане, можете да използвате системната съхранена процедура sp_change_users_login.

sp_change_users_login [ @Action = ] 'action'
[ , [ @UserNamePattern = ] 'user' ] 
[ , [ @LoginName = ] 'login' ] 
[ , [ @Password = ] 'password' ];

Например:

EXEC sp_change_users_login 'Update_One','User123','User123'

Ако имате много потребители, които не са синхронизирани, можете да използвате курсор, за да извадите всички потребители и да изпълните тази команда вместо тях. Няма неблагоприятен ефект от това да се изпълнява срещу потребители, които не са синхронизирани, и ще коригира всички осиротели потребители.

DECLARE @sql NVARCHAR(MAX);
DECLARE curSQL CURSOR
FOR
       SELECT   'EXEC sp_change_users_login ''UPDATE_ONE'', ''' + name + ''', ''' + name + ''''
       FROM     sysusers
       WHERE    issqluser = 1
                AND name NOT IN ( 'guest', 'dbo', 'sys', 'INFORMATION_SCHEMA' )
OPEN curSQL
FETCH curSQL INTO @sql
WHILE @@FETCH_STATUS = 0 
     BEGIN
           EXEC (
           @sql
           )
           FETCH curSQL INTO @sql
     END
CLOSE curSQL
DEALLOCATE curSQL

Това трябва да се изпълни от контекста на базата данни, в която трябва да фиксирате потребителите.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да намерите езика по подразбиране на потребителя в SQL Server (T-SQL)

  2. Проучване на различните ограничения в SQL Server

  3. Как да форматирам число със запетаи в T-SQL?

  4. Премахване на подпълване при изпращане на резултати от заявка в имейл от SQL Server (T-SQL)

  5. Как да извърша вмъкване и връщане на вмъкната идентичност с Dapper?