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

Опитвам се да създам съхранена процедура за създаване на потребител за вход и база данни?

Обмислете използването на dymanic SQL за създаване на потребител. Например, за да създадете сървър за влизане, наречен @login с потребител на база данни, наречен 'DEV' + @login :

create procedure dbo.CreateLoginAndUser(
        @login varchar(100),
        @password varchar(100),
        @db varchar(100))
as
declare @safe_login varchar(200)
declare @safe_password varchar(200)
declare @safe_db varchar(200)
set @safe_login = replace(@login,'''', '''''')
set @safe_password = replace(@password,'''', '''''')
set @safe_db = replace(@db,'''', '''''')

declare @sql nvarchar(max)
set @sql = 'use ' + @safe_db + ';' +
           'create login ' + @safe_login + 
               ' with password = ''' + @safe_password + '''; ' +
           'create user DEV' + @safe_login + ' from login ' + @safe_login + ';'
exec (@sql)
go

Може да е по-лесно да конструирате SQL оператора от страна на клиента. Но дори и тогава не можете да използвате параметри с create login изявление. Така че бъдете нащрек относно SQL инжектирането.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. XML поле - Заявка

  2. Всякакви други решения за SQL Медийният набор има 2 медийни семейства, но само 1 е предоставено. Всички членове трябва да бъдат предоставени. грешка?

  3. Какво означава Възникна сериозна грешка при текущата команда. Резултатите, ако има такива, трябва да се изхвърлят. SQL Azure грешка означава?

  4. Представяме първата в света SaaS платформа за предоставяне на задълбочена диагностика за хибридни SQL сървърни среди

  5. регулярен израз на sql сървър