所以我创建了一个帐户,给了他 dbcreator 和 securityadmin 权限,然后通过该帐户尝试在我创建并现在拥有的数据库上运行 CREATE TABLE,但出现权限被拒绝错误。将帐户提升为 Sysadmin 解决了这个问题,但是有没有办法在不赋予该帐户全能的 sysadmin 权限的情况下做到这一点?
这是在 SQL Server 2008 R2 上。该数据库和表是通过 SharePoint 2010 创建的(但我认为它更适用于 SQL,而不是 SharePoint)。
所以我创建了一个帐户,给了他 dbcreator 和 securityadmin 权限,然后通过该帐户尝试在我创建并现在拥有的数据库上运行 CREATE TABLE,但出现权限被拒绝错误。将帐户提升为 Sysadmin 解决了这个问题,但是有没有办法在不赋予该帐户全能的 sysadmin 权限的情况下做到这一点?
这是在 SQL Server 2008 R2 上。该数据库和表是通过 SharePoint 2010 创建的(但我认为它更适用于 SQL,而不是 SharePoint)。
据我所知,您使用服务器角色创建了一个服务器登录名(DBCreator 和 SecurityAdmin 是服务器角色)。但这并不意味着它已经拥有现有数据库的权限。
您需要做的是在该数据库中创建一个用户并将其映射到登录名:
这将为您的新用户分配数据库角色 db_owner 到数据库。现在您应该能够使用登录名创建表。如果您不需要成为数据库所有者,您也可以尝试其他角色。
尝试以下操作:
虽然所有答案都很好,但这里的问题更多地在于 SharePoint,给定的帐户未正确配置并映射到所有 SharePoint 数据库。将帐户 dbowner 提供给所有 SharePoint db,就像它解决了问题一样,感谢大家的尝试!