在本文中,您将会了解到关于Sqlserver用户映射表权限的分配的新资讯,同时我们还将为您解释sqlserver用户映射数据库15023的相关在本文中,我们将带你探索Sqlserver用户映射表权限的
在本文中,您将会了解到关于Sqlserver 用户映射 表权限的分配的新资讯,同时我们还将为您解释sqlserver用户映射数据库15023的相关在本文中,我们将带你探索Sqlserver 用户映射 表权限的分配的奥秘,分析sqlserver用户映射数据库15023的特点,并给出一些关于Powershell-用户映射SQL Server 2012、SQL Server 2008 R2 为用户权限分配的操作步骤、SQL Server Report Server 报表用户权限T-SQL查询、SQL Server 使SQL用户只能看到自己拥有权限的库(图文教程)的实用技巧。
本文目录一览:- Sqlserver 用户映射 表权限的分配(sqlserver用户映射数据库15023)
- Powershell-用户映射SQL Server 2012
- SQL Server 2008 R2 为用户权限分配的操作步骤
- SQL Server Report Server 报表用户权限T-SQL查询
- SQL Server 使SQL用户只能看到自己拥有权限的库(图文教程)
Sqlserver 用户映射 表权限的分配(sqlserver用户映射数据库15023)
用户映射 public 维护所有默认权限 db_owner 执行所有数据库角色活动 db_accessadmin 添加和删除数据库用户,组及角色 db_ddladmin 添加、更改或删除数据库对象 db_security admin 分配语句执行和对象权限 db_backupoperator 备份数据库 db_datareader 读取任何表中的数据 db_datawriter 添加、更改或删除所有表中的数据 db_denydatareader 不能读取任何表中的数据 db_denydatawriter 不能更改任何表中的数据
Powershell-用户映射SQL Server 2012
我正在尝试为不同的登录帐户编写用户映射脚本。我已经为用户和单个服务器角色的创建编写了脚本,但是我不知道如何使用Powershell设置用户映射,我还需要设置Database
Role membership
,特别是db_backupoperator
有人知道如何使用Powershell做到这一点吗?
SQL Server 2008 R2 为用户权限分配的操作步骤
背景
之前我们编写程序的时候都是直接对数据库进行访问,并没有设置什么权限之类的东西,但是在管理数据库的过程中,我们有时候需要控制某个用户访问数据库的权限,比如只能单独的看到属于其管理的某几张表,或者说是拥有CRUD(增加(Create)、读取(Retrieve)(重新得到数据)、更新(Update)和删除(Delete))权限,或者是更小的粒度的划分,总而言之,一切皆是为了系统的安全和操作的方便。
系统需求简介
最近一直在做高校云平台这个项目,我们小组做的是其中的一个子系统是成绩管理系统,不同于之前的开发方式,本次我们采用的是分模块开发也就是将划分的粒度变得更加的小了,这样就有一个好处,就是各自负责各自的便于开发和调试。
但是这样也带来一个问题,就是数据库是共同的,我们采用的是EF映射也就是从数据库生成的实体,如果都是用一个账号进行登陆的话,那么看到将是同样多的表,其实这样是很没有必要的,故而数据库为我们提供了更好的便利,那就是为各个用户分配不同的权限。
操作步骤 Ø 数据库级别登录名建完的效果图如下图所示:
Ø 具体步骤
进入数据库级别的安全性设置----新建【登录名】,如图:
第一步: 在常规选项卡的中填写:
服务器角色的不用重新设置
第二步:用户映射选项卡
安全对象不用设置
第三步:状态选项卡
此时已经设置好了,此时我们该设置这个用户的权限了
Ø 用户权限的分配
选中其中的一张表,进行权限设置,必须是刚才设置时的数据库,否则是看不到的。
此时进行相应的权限设置即可
至此已经完成,我们可以用我们设置的登录名和密码进入,此时看到只是我们分配的几张表。自己动手试试吧。
以上是针对部分表的限制权限,如果是所有表那么就是直接 要限制的数据库表名>右键>属性 右侧有权限,勾选上删除即可
SQL Server Report Server 报表用户权限T-SQL查询
/**************************************************************************
查询用户在报表上的权限
**************************************************************************/
use ReportServer
go
SELECT distinct c.Path,c.Name,d.UserName,b.RoleName
FROM [dbo].[PolicyUserRole] a, [dbo].[Roles] b, [dbo].[Catalog] c, users d
where a.RoleID=b.RoleID
and a.PolicyID=c.PolicyID
and a.UserID=d.UserID
/**************************************************************************
查询报表订阅Owner和对应的SQL Job
**************************************************************************/
select ''ReportName'' = c.[name],
''ReportPath'' = c.Path,
''SubnDesc'' = s.Description,
''SubnOwner'' = us.UserName,
''LastStatus'' = s.LastStatus,
''LastRun'' = s.LastRunTime,
''ReportModifiedBy'' = uc.UserName,
''SubscriptionJobName'' = j.name
from dbo.Subscriptions s
join dbo.Catalog c on c.ItemID = s.Report_OID and convert(varchar(10),s.LastRunTime,120) = convert(varchar(10),getdate(),120)
join dbo.ReportSchedule rs on rs.SubscriptionID = s.SubscriptionID
join dbo.Users uc on uc.UserID = c.ModifiedByID
join dbo.Users us on us.UserID = s.OwnerId
join msdb.dbo.sysjobs j on j.name = CONVERT(nvarchar(128),rs.ScheduleId)
order by LastRun desc
/**************************************************************************
查询报表元素类型
**************************************************************************/
SELECT Catalog.Path, Catalog.Name, Users.UserName, Catalog.Type,
CASE
WHEN Catalog.type = 1 THEN ''1-Folder''
WHEN Catalog.type = 2 THEN ''2-Report''
WHEN Catalog.type = 3 THEN ''3-File''
WHEN Catalog.type = 4 THEN ''4-Linked Report''
WHEN Catalog.type = 5 THEN ''5-Datasource''
WHEN Catalog.type = 6 THEN ''6-Model''
WHEN Catalog.type = 8 THEN ''8-Shared Dataset''
WHEN Catalog.type = 9 THEN ''9-Report Part''
WHEN Catalog.type = 11 THEN ''KPI''
WHEN Catalog.type = 12 THEN ''Mobile Report (folder)''
WHEN Catalog.type = 13 THEN ''Power BI Desktop Document''
ELSE ''Unknown'' END AS [ItemType]
FROM Catalog INNER JOIN
Policies ON Catalog.PolicyID = Policies.PolicyID INNER JOIN
PolicyUserRole ON PolicyUserRole.PolicyID = Policies.PolicyID INNER JOIN
Users ON PolicyUserRole.UserID = Users.UserID
ORDER BY Catalog.Path
SQL Server 使SQL用户只能看到自己拥有权限的库(图文教程)
感兴趣的小伙伴,下面一起跟随小编 jb51.cc的小编两巴掌来看看吧!
以sql Server 2012 为例
【图片暂缺】
上图是部分数据库的截图,我们执行
代码如下:
DENY VIEW any DATABASE to PUBLIC;
然后给Best库的Best用户执行
代码如下:
ALTER AUTHORIZATION ON DATABASE::Best TO Best
【图片暂缺】
资源管理器中Best用户登陆后就只能显示Best库了,同样给mine库的mine用户执行相同sql
代码如下:
ALTER AUTHORIZATION ON DATABASE::mine TO mine
【图片暂缺】
mine用户登录后也只能显示mine数据库了,达到了咱的目的,分配权限的时候记得给对应用户映射对应数据库的权限,防止跨库操作.
关于Sqlserver 用户映射 表权限的分配和sqlserver用户映射数据库15023的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于Powershell-用户映射SQL Server 2012、SQL Server 2008 R2 为用户权限分配的操作步骤、SQL Server Report Server 报表用户权限T-SQL查询、SQL Server 使SQL用户只能看到自己拥有权限的库(图文教程)等相关知识的信息别忘了在本站进行查找喔。
本文标签: