小编典典

创建新用户的SQL Server脚本

sql

我想编写一个脚本来在SQL Server Express中创建一个admin用户(使用abcd密码)。另外,我想为该用户分配admin全部权限。


阅读 259

收藏
2021-05-05

共1个答案

小编典典

根据您的问题,我认为您可能对 UserLogin 之间的区别有些困惑。一个 登录 的是SQL Server作为一个整体上的账户-
有人谁是能够登录到服务器,谁拥有一个密码。一个 用户 是一个 登录 访问到特定的数据库。

创建 登录 很容易,并且必须(显然)必须在特定数据库中为登录创建 用户 帐户之前完成:

CREATE LOGIN NewAdminName WITH PASSWORD = 'ABCD'
GO

这是使用刚刚声明的 登录名 创建具有db_owner特权的 用户的 方法: __

Use YourDatabase;
GO

IF NOT EXISTS (SELECT * FROM sys.database_principals WHERE name = N'NewAdminName')
BEGIN
    CREATE USER [NewAdminName] FOR LOGIN [NewAdminName]
    EXEC sp_addrolemember N'db_owner', N'NewAdminName'
END;
GO

现在, 登录名 比我上面提到的要流畅一些。例如,安装数据库后,将自动为Windows管理员帐户创建一个登录帐户(在大多数SQL
Server安装中)。在大多数情况下,我只是在管理数据库时使用它(它具有所有特权)。

但是,如果要从应用程序访问SQL
Server,则需要将服务器设置为“混合模式”(Windows和SQL登录名),并如上所述创建登录名。然后,您将根据您的应用程序所需的内容,“
GRANT”拥有该SQL登录名的特权。有关更多信息,请参见此处

更新:亚伦指出使用sp_addsrvrolemember向您的登录帐户分配一个准备好的角色。这是一个好主意-
比手动授予特权更快,更容易。如果您用google搜索,则会看到很多链接。但是,您仍然必须了解登录名和用户之间的区别。

2021-05-05