sqlserver建表权限
‘壹’ 姹傛暀sqlServer澶ф坠锛屾庝箞璁剧疆SQLServer涓哄栫晫璁块梾镄勬椂鍊椤彧鑳借块梾鍒拌嗗浘锛屼笉璁╄块梾钥呯湅鍒版暟鎹搴挞噷闱㈢殑琛
sqlserver2000锛
璁惧畾𨱒冮檺锛屽皢瀵瑰簲镄勮〃寤虹珛鐩稿簲瑙嗗浘涔嫔悗锛
鍙冲嚮鐢ㄦ埛钖庯纴镣瑰嚮𨱒冮檺鎸夐挳杩涜屾潈闄愯惧畾鎸夐挳锛屽圭敤鎴疯兘镎崭綔镄勮〃镄勬潈闄愯繘琛岃惧畾锛屽备笅阈捐倖锲撅细
‘贰’ 怎么设置SQL数据库用户权限
-- sqlserver:一、操作步骤
1.
首先进入数据库级别的【安全性】-【登录名】-【新建登录名】
(图1:新建登录名)
2.
在【常规】选项卡中,如下图所示,创建登陆名,并设置默认的数据库。
(图2:设置选项)
3.
在【用户映射】选项卡中,如下图所示,勾选需要设置的数据库,并设置【架构】,点击【确认】按钮,完成创建用户的操作
(图3:选择对应数据库)
4.
现在我们就可以对testlog数据库中的user表进行权限的设置了,【表】-【
属性】
(图4:选择对应表)
5.
在【权限】选项卡中,如下图所示,依此点击【添加】-【浏览】-【选择对象】
(图5:设置访问表的用户)
6.
在上面点击【确认】后,我们就可以下面的列表中找到对应的权限,如果你还想细化到列的权限的话,右下角还有一个【列权限】的按钮可以进行设置,点击【确认】按钮就完成了这些权限的设置了
(图6:权限列表)
7.
现在就使用testuser用户登陆数据库了,登陆后如下图所示,现在只能看到一个表了
(图7:效果)
二、注意事项
1.
在上面的第3步骤中需要注意:如果这里没有选择对应的数据库的话,之后去testlog数据库中是找不到testuser。
(图8:找不到testuser用户)
2.
在上面的第3步骤,设置完testlog数据后,需要点击【确认】按钮,完成创建用户操作,如果这个时候去设置【安全对象】,是无法在【添加】-【特定对象】-【对象类型】-【登陆名】-【浏览】中找到刚刚新建的testuser用户的。
3.
其实在数据库级别的【安全性】创建的用户是属于全局的,当设置了某个数据库,比如testlog之后,这个用户就会出现在这个数据库的【安全性】列表中。
如果删除testlog这个用户,会出现下面的提示。删除了后,这个用户就无法登陆了。需要去对应的数据库中删除用户,如果没有删除又创建,是会报错的。
(图9:删除testuser用户)
4.
在第6步的【显式权限】列表中,如果选择了【control】这个选项,那么在【select】中设置查询【列权限】就没有意义了,查询就不会受限制了。如果设置【列权限】,在正常情况下会显示下图的报错信息:
(图10:效果)
5.
在testlog数据库的【安全性】-【testuser】-【属性】-【安全对象】-【添加】-【对象类型】这里有更多关于数据库级别的一些对象类型可以设置。
(图11:其它对象类型)
‘叁’ sql server 表的权限如何解决
你搞的有点复杂了,你既然都有了Aa的权限了,直接修改不就行了么。
再说了,也可以让数据库管理员给你的角色授权嘛,怎么还新建一个库,没有必要。
==============================================================
这事儿啊,还得找你们数据库管理员。可以对单张表授权。
新建登陆用户,不用给库服务器角色,数据库角色就用默认的public。
然后,在查询分析器中,对创建的该角色,特殊授权。
比如我们创建了登陆名为rr的用户,仅仅把tb这张表给他用:
GRANT SELECT,delete,insert on tb TO rr
他对其他表是操作不了的。
‘肆’ 请问在SQLServer 2000中用户和角色的区别以及对象权限和语句权限的区别。麻烦用规范语言作答。
/*--示例说明
示例在数据库pubs中创建一个拥有表jobs的所有权限、拥有表titles的SELECT权限的角色r_test
随后创建了一个登录l_test,然后在数据库pubs中为登录l_test创建了用户账户u_test
同时将用户账户u_test添加到角色r_test中,使其通过权限继承获取了与角色r_test一样的权限
最后使用DENY语句拒绝了用户账户u_test对表titles的SELECT权限。
经过这样的处理,使用l_test登录SQL Server实例后,它只具有表jobs的所有权限。
--*/
USE pubs
--创建角色 r_test
EXEC sp_addrole 'r_test'
--授予 r_test 对 jobs 表的所有权限
GRANT ALL ON jobs TO r_test
--授予角色 r_test 对 titles 表的 SELECT 权限
GRANT SELECT ON titles TO r_test
--添加登录 l_test,设置密码为pwd,默认数据库为pubs
EXEC sp_addlogin 'l_test','pwd','pubs'
--为登录 l_test 在数据库 pubs 中添加安全账户 u_test
EXEC sp_grantdbaccess 'l_test','u_test'
--添加 u_test 为角色 r_test 的成员
EXEC sp_addrolemember 'r_test','u_test'
--拒绝安全账户 u_test 对 titles 表的 SELECT 权限
DENY SELECT ON titles TO u_test
/*--完成上述步骤后,用 l_test 登录,可以对jobs表进行所有操作,但无法对titles表查询,虽然角色 r_test 有titles表的select权限,但已经在安全账户中明确拒绝了对titles的select权限,所以l_test无titles表的select权限--*/
--从数据库 pubs 中删除安全账户
EXEC sp_revokedbaccess 'u_test'
--删除登录 l_test
EXEC sp_droplogin 'l_test'
--删除角色 r_test
EXEC sp_droprole 'r_test'
首先,做好用户安全:
--简单的,只允许sql的用户访问sql(防止利用administrator组用户访问)
1.企业管理器--右键SQL实例--属性--安全性--身份验证--选择"sql server和windows"--确定
2.企业管理器--安全性--登陆--右键sa--设置密码--其他用户也设置密码
3.删除用户:
BUILTIN\Administrators
<机器名>\Administrator --这个用户不一定有
这样可以防止用windows身份登陆SQL
4.设置进入企业管理器需要输入密码
在企业管理器中
--右键你的服务器实例(就是那个有绿色图标的)
--编辑SQL Server注册属性
--选择"使用 SQL Server 身份验证"
--并勾选"总是提示输入登录名和密码"
--确定
--经过上面的设置,你的SQL Server基本上算是安全了.
------------------------------------------------------------------------
其次,改默认端口,隐藏服务器,减少被攻击的可能性
SQL Server服务器
--开始
--程序
--Microsoft SQL Server
--服务器网络实用工具
--启用的协议中"TCP/IP"
--属性
--默认端口,输入一个自已定义的端口,比如2433
--勾选隐藏服务器
----------------------------------------------------------------------------
--管好sql的用户,防止访问他不该访问的数据库(总控制,明细还可以控制他对于某个数据库的具体对象具有的权限)
--切换到你新增的用户要控制的数据库
use 你的库名
go
--新增用户
exec sp_addlogin 'test' --添加登录
exec sp_grantdbaccess N'test' --使其成为当前数据库的合法用户
exec sp_addrolemember N'db_owner', N'test' --授予对自己数据库的所有权限
--这样创建的用户就只能访问自己的数据库,及数据库中包含了guest用户的公共表
go
--删除测试用户
exec sp_revokedbaccess N'test' --移除对数据库的访问权限
exec sp_droplogin N'test' --删除登录
如果在企业管理器中创建的话,就用:
企业管理器--安全性--右键登录--新建登录
常规项
--名称中输入用户名
--身份验证方式根据你的需要选择(如果是使用windows身份验证,则要先在操作系统的用户中新建用户)
--默认设置中,选择你新建的用户要访问的数据库名
服务器角色项
这个里面不要选择任何东西
数据库访问项
勾选你创建的用户需要访问的数据库名
数据库角色中允许,勾选"public","db_ownew"
确定,这样建好的用户与上面语句建立的用户一样
---------------------------------------------------------------------------
最后一步,为具体的用户设置具体的访问权限,这个可以参考下面的最简示例:
--添加只允许访问指定表的用户:
exec sp_addlogin '用户名','密码','默认数据库名'
--添加到数据库
exec sp_grantdbaccess '用户名'
--分配整表权限
GRANT SELECT , INSERT , UPDATE , DELETE ON table1 TO [用户名]
--分配权限到具体的列
GRANT SELECT , UPDATE ON table1(id,AA) TO [用户名]
-------------------------------------------------------------------
至于具体的安全设置和理论知道,参考SQL联机帮助
‘伍’ sqlserver 在对象上的权限设置有哪些动作分别是什么意义
以下粘贴自SQL Server 的帮助信息,文字太多不能贴全,你自己可在帮助中查到更多信息。
-----------------------------
每个 SQL Server 安全对象都有可以授予主体的关联权限。本主题提供了下列信息:
权限命名约定
与特定的安全对象相关的权限
SQL Server 权限
权限检查算法
示例
权限命名约定
下面介绍命名权限时遵循的一般约定:
CONTROL
为被授权者授予类似所有权的功能。被授权者实际上对安全对象具有所定义的所有权限。也可以为已被授予 CONTROL
权限的主体授予对安全对象的权限。因为 SQL Server 安全模型是分层的,所以 CONTROL 权限在特定范围内隐含着对该范围内的所有安全对象的
CONTROL 权限。例如,对数据库的 CONTROL
权限隐含着对数据库的所有权限、对数据库中所有组件的所有权限、对数据库中所有架构的所有权限以及对数据库的所有架构中的所有对象的权限。
ALTER
授予更改特定安全对象的属性(所有权除外)的权限。当授予对某个范围的 ALTER
权限时,也授予更改、创建或删除该范围内包含的任何安全对象的权限。例如,对架构的 ALTER 权限包括在该架构中创建、更改和删除对象的权限。
ALTER ANY
<服务器安全对象>,其中的服务器安全对象可以是任何服务器安全对象。
授予创建、更改或删除服务器安全对象的各个实例的权限。例如,ALTER
ANY LOGIN 将授予创建、更改或删除实例中的任何登录名的权限。
ALTER ANY
<数据库安全对象>,其中的数据库安全对象可以是数据库级别的任何安全对象。
授予创建、更改或删除数据库安全对象的各个实例的权限。例如,ALTER
ANY SCHEMA 将授予创建、更改或删除数据库中的任何架构的权限。
TAKE OWNERSHIP
允许被授权者获取所授予的安全对象的所有权。
IMPERSONATE <登录名>
允许被授权者模拟该登录名。
IMPERSONATE <用户>
允许被授权者模拟该用户。
CREATE <服务器安全对象>
授予被授权者创建服务器安全对象的权限。
CREATE <数据库安全对象>
授予被授权者创建数据库安全对象的权限。
CREATE
<包含在架构中的安全对象>
授予创建包含在架构中的安全对象的权限。但是,若要在特定架构中创建安全对象,必须对该架构具有
ALTER 权限。
VIEW DEFINITION
允许被授权者访问元数据。
REFERENCES
表的 REFERENCES 权限是创建引用该表的外键约束时所必需的。
对象的 REFERENCES
权限是使用引用该对象的 WITH SCHEMABINDING 子句创建 FUNCTION 或 VIEW
时所必需的。
适用于特定安全对象的权限
下表列出了主要的权限类别以及可应用这些权限的安全对象的种类。
权限
适用于
SELECT
同义词
表和列
表值函数 [Transact-SQL 和公共语言运行时 (CLR)] 和列
视图和列
VIEW CHANGE TRACKING
表
架构
UPDATE
同义词
表和列
视图和列
REFERENCES
标量函数和聚合函数(Transact-SQL 和 CLR)
Service Broker 队列
表和列
表值函数(Transact-SQL 和 CLR)和列
视图和列
INSERT
同义词
表和列
视图和列
DELETE
同义词
表和列
视图和列
EXECUTE
过程(Transact-SQL 和 CLR)
标量函数和聚合函数(Transact-SQL 和 CLR)
同义词
CLR 类型
RECEIVE
Service Broker 队列
VIEW DEFINITION
过程(Transact-SQL 和 CLR)
Service Broker 队列
标量函数和聚合函数(Transact-SQL 和 CLR)
同义词
表
表值函数(Transact-SQL 和 CLR)
视图
ALTER
过程(Transact-SQL 和 CLR)
标量函数和聚合函数(Transact-SQL 和 CLR)
Service Broker 队列
表
表值函数(Transact-SQL 和 CLR)
视图
TAKE OWNERSHIP
过程(Transact-SQL 和 CLR)
标量函数和聚合函数(Transact-SQL 和 CLR)
同义词
表
表值函数(Transact-SQL 和 CLR)
视图
CONTROL
过程(Transact-SQL 和 CLR)
标量函数和聚合函数(Transact-SQL 和 CLR)
Service Broker 队列
同义词
表
表值函数(Transact-SQL 和 CLR)
视图
‘陆’ SQL Server 2005 鐢ㄦ埛𨱒冮檺璁剧疆
create 𨱒冮檺[on 琛ㄥ悕] to 鏁版嵁搴撶敤鎴
姣斿傝达细
use sutDB
go
--涓簔hangsanDBUser鍒嗛厤瀵硅〃studInfo镄剆elect銆乮nsert銆乽pdate𨱒冮檺
create select,insert,update on studInfo to zhangsanDBuser
--涓簂isiDBUser 鍒嗛厤寤鸿〃镄勬潈闄
create create table to lisiDBUser
镊充簬浣犺淬傝佽╀笉钖岀殑锏诲綍钖岖湅瑙佷粬镊宸卞簲璇ョ湅瑙佺殑琛ㄣ傚叾鏁绠浠栫殑琛ㄧ湅涓嶈併傝繖涓涓嶅彲鑳界殑銆备絾鏄瀵硅佹梾浜庡叾浠栫殑琛ㄤ粬镙逛寒钖瑁ゆ湰娌℃湁璁块梾𨱒幂殑銆备綘杩炴帴镄勬槸钖屼竴涓瀹炰緥钖嶃傛墍链夌殑琛ㄩ兘鍦ㄩ噷闱㈢殑銆傛墍浠ラ兘鍙浠ョ湅寰楄侊纴瑕佹槸鍒浜烘潵杩炴帴浣犵殑鏁版嵁搴撱傞偅灏卞彧瑕佺粰浜堟潈闄愬氨琛屼简镄勚