Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Saya mencoba membuat prosedur tersimpan untuk membuat login dan pengguna database?

Pertimbangkan untuk menggunakan SQL dinamis untuk membuat pengguna. Misalnya, untuk membuat login server bernama @login dengan pengguna database bernama '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

Mungkin lebih mudah untuk membangun pernyataan SQL sisi klien. Namun meskipun demikian, Anda tidak dapat menggunakan parameter dengan create login penyataan. Jadi waspadalah tentang SQL Injection.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Menambahkan Kolom Baru ke Tabel yang Ada di SQL Server (T-SQL)

  2. Bagaimana cara mensimulasikan UNPIVOT di Access?

  3. TSQL:Bagaimana cara mengubah waktu lokal ke UTC? (SQLServer 2008)

  4. Temukan Entitas Referensi di SQL Server:sys.dm_sql_referencing_entities()

  5. Classic ADO.NET - Bagaimana Melewati UDT Ke Stored Procedure?