zoukankan      html  css  js  c++  java
  • SQL 链接服务器及权限限制

    新增一个用户且只赋予它表A及表B select的权限

    方法一:T-SQL语法,

    exec sp_addlogin 'username','password','DB1'
    exec sp_adduser 'username'
    grant select on TB1 to username
    grant select on TB2 to username
    方法二:图形化界面操作
    参考http://wenwen.soso.com/z/q230175388.htm
    关键点:新建一个数据库实例的登录用户,然后在具体的数据库中“安全性”-->“用户”设定表权限
    分布式查询--》链接服务器

    远程连接SQL2000时,需要用到系统存储过程 sp_addlinkedserver和sp_addlinkedsrvlogin

    例:我要通过查询分析器连接172.20.40.208电脑上的Sea数据库,并查询"pknglst"表,代码如下:

    exec sp_addlinkedserver   'ITSV ', '', 'SQLOLEDB','172.20.40.208 ','','','sea'
    exec sp_addlinkedsrvlogin  'ITSV ', 'false ',null, 'sa ', 'confidence'
    select * from ITSV.sea.dbo.pknglst

    "ITSV"为连接此数据库的别名。

    "SQLOLEDB"为与此数据源相对应的 OLE DB 提供程序的唯一程序标识符 (PROGID)。MSSQL为SQLOLEDB。

    以后不再使用时删除链接服务器代码

    exec sp_dropserver  'ITSV ', 'droplogins '

    exec sp_addlinkedserver   'ITSV', '', 'SQLOLEDB','127.0.0.1 '

    EXEC sp_addlinkedsrvlogin
         'ITSV', --被访问的服务器别名
         'false',
         NULL,
         'sa', --帐号
         'zhouqing' --密码

    Exec sp_droplinkedsrvlogin 'ITSV',Null
    Exec sp_dropserver 'ITSV'

    SQL權限問題,利用Linked Server 建view user存取的相關權限

    今天我們有一個外部廠商要存取我們資料庫的某些資料

    由於公司不想讓廠商直接連到我的主要的SQL server(假設為A server)

    因此要另外架一台SQL,server(假設為B server),

    然後在B server利用linked server去A抓一些table建成view存在B server

    在B server上開帳號給廠商,讓廠商帳號只能讀 B server上的某些view

    但問題是,廠商的權限並無法存取linked server,所以要select view 時就會失敗

    訊息 18456,層級 14,狀態 1,行 1

    連結伺服器 "XXXXX" 的 OLE DB 提供者 "SQLNCLI" 傳回訊息 "無效的連線字串屬性"。

    有解決的方法嗎?

    究竟要怎樣提供廠商存取view的權限..但又不讓他直接連到A server

    思路:

    要先在A建一個只能select view_A 的 account

    然後在B用A這個account來建立 linked server的連線

    (同時在安全性裏 選擇廠商的account去對應A的account)

    我就在本機伺服器與遠端伺服器登入對應的項目中 加入一筆

    本機使用者   摸擬             遠端使使用者      遠端密碼

    userB         沒勾選             userA            XXXXXXXX  

    参考:http://social.technet.microsoft.com/Forums/zh-TW/sqlservermanagementzhcht/thread/ab6ab7f4-6c6e-41ca-b333-30c7b64c4ddd

    权限说明:执行需要的sp_addlinkedserver权限    执行许可权限默认授予 sysadmin 和 setupadmin 固定服务器角色的成员

    参考:SQL Server的链接服务器技术小结【摘自:91qz.com】 http://www.cnblogs.com/ding0910/articles/419807.html 

    SQL Server分布式查询详细介绍 http://www.qqread.com/sqlserver/2010/09/f495658.html

    sp_addlinkedserver的一些操作 http://hi.baidu.com/lvzhnan/blog/item/036a98c28084d553b219a87f.html

    SQL SERVER2005建Link Server http://space.itpub.net/7728585/viewspace-682567

  • 相关阅读:
    Newbit 启用淘宝店域名
    Ninja构建系统入门
    异想家Golang学习笔记
    Webpack学习
    JavaFx图形界面开发
    异想家Win10常用的软件推荐
    Java Swing图形界面开发
    优雅写Java之四(类与对象)
    优雅写Java之三(IO与文本解析)
    优雅写Java之二(数组集合流)
  • 原文地址:https://www.cnblogs.com/zqstc/p/1963247.html
Copyright © 2011-2022 走看看