sql-server - 创建登录,从 Azure 中的存储过程创建用户
问题描述
我继承了一个在 SQL Server 2005 上运行的非常旧的应用程序。我正在尝试将此应用程序移动到 Azure。
此应用程序中的存储过程所做的一件事是创建新的数据库登录名和新用户。我知道它使用的许多函数和系统过程不再存在于 SQL Server 或 Azure 中。
是否有可以从用户数据库执行的类似sp_addlogin
、sp_droplogin
、sp_grantdbaccess
等的过程(这些过程在那里并且必须在那里运行)?sp_revokedbaccess
我看到很多关于“连接到主服务器”的文章,但是如何从自定义数据库的存储过程中做到这一点?
例如,“创建登录”命令必须在 master 中运行,但我的程序在用户数据库中。我怎么做?
任何帮助,将不胜感激。如果我试图做的事情是不可能的,我也会很感激知道这一点。
解决方案
我不确定您从哪里得到CREATE LOGIN
必须在主数据库中运行的想法。从用户数据库运行时似乎工作得很好:
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;
推荐阅读
- python - 为什么我收到此代码使用 plotly 绘制绘图的无效语法错误?
- python-3.x - Python pip:ImportError 无法从“六”导入名称“ensure_str”。在多个 pip 命令上
- ios - SwiftUI TextField 不接受整数/双精度数。怎么做?
- amazon-dynamodb - 如何在 DynamoDB 中对此建模?
- oracle - 错误:PLS-00103:遇到符号“CALL”错误:检查编译器日志
- r - ggplot中的面板数据移动平均线
- react-native - 如何在 ReactNative 中重新定义组件?
- html - 引导灯箱控件(下一个/上一个/关闭)未正确显示
- c# - 在 DataGrid WPF 中显示来自另一个表的相关信息
- c# - 在部分类中添加属性后,EF 核心“字段列表中的未知列”