我想编写一个脚本来在SQL Server Express中创建一个admin用户(使用abcd密码)。另外,我想为该用户分配admin全部权限。
admin
abcd
根据您的问题,我认为您可能对 User 和 Login 之间的区别有些困惑。一个 登录 的是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搜索,则会看到很多链接。但是,您仍然必须了解登录名和用户之间的区别。