创建登录名,从 Azure 中的存储过程创建用户



我继承了一个在SQL Server 2005上运行的非常古老的应用程序。我正在尝试将此应用程序移动到 Azure。

此应用中的存储过程执行的一件事是创建新的数据库登录名和新用户。我知道它使用的许多函数和系统过程在SQL Server或Azure中不再存在。

是否有一些等效的程序,如sp_addloginsp_droploginsp_grantdbaccesssp_revokedbaccess等可以从用户数据库中执行(程序在那里并且必须在那里运行(?

我看到很多文章都在讨论"连接到主数据库",但是如何从自定义数据库的存储过程中执行此操作?

例如,"创建登录名"命令必须在 master 中运行,但我的过程在用户数据库中。我该怎么做?

任何帮助将不胜感激。如果我想做的事情是不可能的,我也很高兴知道这一点。

我不确定您从哪里得到CREATE LOGIN必须在 master 数据库中运行的想法。从用户数据库运行时似乎工作正常:

use master
go
drop database if exists StackOverflow;
create database StackOverflow;
go
use StackOverflow;
go
if exists(select * from sys.syslogins where name=N'StackOverflow')
drop login [StackOverflow];
create login StackOverflow
with    password='St4ck0verflow',
default_database = StackOverflow;
create user StackOverflow
from login StackOverflow
with    default_schema = dbo;

最新更新