SQL server 2008 权限
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL server 2008 权限相关的知识,希望对你有一定的参考价值。
如何新建一个登陆(用),让这个登陆只能有一个权限:SELECT数据库中的某一张表。除了这个权限以外其他都不能做。
参考技术A 对于不想让某一用户(如user1)查看表(如 table j)直接在定义该用户时不授予select on j 的权限,若已经授予了可用下面SQL语句解决: revoke select on j(注意在SQL2008中是 on j ,若on table j就出错) from user1 同样的,授予user1对表j 的添加(insert)或删除(delete)或修改(update)权限即可,已insert 为例: grant insert on j to user1 另外,只能是数据库的超级用户sa或是对表j拥有添加(insert)或删除(delete)或修改(update)权限的一般用户才能授权给user1,而对于收回user1的权限一般由数据库的超级用户sa或已将权限授予user1的用户。 参考技术B 假设你的数据库是TestDB 你这个查询的表为 TestTbl 新建的用户为 UserTest 密码为UserTest新建个角色为 RoleTest
USE [TestDB]
GO
CREATE LOGIN [UserTest ] WITH PASSWORD=N'UserTest ', DEFAULT_DATABASE=[TestDB], DEFAULT_LANGUAGE=[日本语], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
GO
CREATE USER [UserTest ] FOR LOGIN [UserTest ] WITH DEFAULT_SCHEMA=[dbo]
GO
CREATE ROLE [RoleTest] AUTHORIZATION [dbo]
GO
GRANT SELECT ON [dbo].[TestTbl ] TO [RoleTest] AS [dbo]
GO
exec sp_addrolemember N'RoleTest', N'UserTest'
go本回答被提问者和网友采纳 参考技术C 在安全登录设置那里指定某一数据库即可
授予对数据库的 SQL Server 登录访问权限 - SQL Server
【中文标题】授予对数据库的 SQL Server 登录访问权限 - SQL Server【英文标题】:Granting a SQL Server Login Access to a Database - SQL Server 【发布时间】:2011-02-20 22:40:05 【问题描述】:我想为 SQL Server 登录授予对数据库的访问权限。我知道 sp_grantdbaccess,但它已被弃用。我可以改用什么?如何检查登录名是否还没有访问数据库的权限?
场景:UserA 创建数据库 - 在 sys.database_principals 我有一个名为 dbo 和 UserA sid 的条目。我尝试再次授予 UserA 权限:我尝试通过 name='UserA' 在 sys.database_principals 上进行选择,但是由于名称是 dbo 而不是 UserA,我收到错误 - '登录已经有一个不同用户名下的帐户.'.在没有 sid 的情况下如何确定用户是否具有数据库访问权限?
【问题讨论】:
【参考方案1】:你可能想要CREATE USER
例如
CREATE USER bobuser FOR LOGIN boblogin
sys.database_principals 安全目录有一个数据库用户列表,因此您可以确保您没有同名的用户。
【讨论】:
如果用户已经拥有数据库访问权限,则会返回错误。如何验证用户是否具有数据库访问权限? 你可以先运行if not exists(select * from sys.database_principals where name='bobuser') begin create user...
之类的查询,看看它是否存在【参考方案2】:
首先,您需要在该数据库中为相关登录创建一个用户。为此,请使用Create User
。如果要确定用户是否已经存在,可以通过过滤type = 'U'
来使用sys.database_principals
目录视图。如果要确定给定用户是否已经在某个角色中,可以使用sys.database_role_members
。
【讨论】:
以上是关于SQL server 2008 权限的主要内容,如果未能解决你的问题,请参考以下文章
SQL Server Reporting Services 2008 报表生成器用户访问权限
SQL Server 2008 R2 Express 权限——不能创建数据库或修改用户