基于SqlServer下的授权访问,跨主机,以及权限分配

486 阅读3分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

1.开放自己所安装的数据库远程访问权限; 给要访问的服务器中,安全中设置登录方式为sql server和windows验证方式登录 在这里插入图片描述

登录sa账户后,在状态栏中,允许连接到数据库引擎 在这里插入图片描述

2.创建一个用户,授予其访问数据库权限; --创建登录账户 create login xuniji with password='123456' 在这里插入图片描述

主机充当客户机时候,用sa账户登录访问虚拟机的服务器

用的是主机的(192.168.1.2)的DBMS,账户sa,要访问的地址是192.168.1.3

用xuniji这个账户登录时候,并未授权的情况下禁止登录访问数据库 在这里插入图片描述

授权后: use Company 这条语句不可缺少,如果是让登录用户访问特定的数据库 --创建数据库用户 create user xuniji for login xuniji with default_schema=dbo

访问所有的数据库: 访问所有的数据库则不用添加 use company EXEC sp_grantdbaccess 'xuniji' GO 在这里插入图片描述

可以访问了

3.将一个或多个特定表的查询和插入权限组成角色,并授予给该用户; grant select,insert on Department to xuniji grant select,insert on Employees to xuniji 在这里插入图片描述

该条语句是把查询和插入的权限给xuniji这个角色名字,也可以说是登录名,因为之前我创建过一个xuniji的角色名和一个虚拟机的登录名,已经建立过映射关系,所以这里不需要再进行映射了 在这里插入图片描述 在这里插入图片描述

经过授权后插入和查询都能执行成功,这里授权是用主机sa账户进行授权的,而我进行插入和查询是用xuniji这个账户进行的。

4.在全班或小组中选择一个合作伙伴,让其通过已设置好的用户远程访问,并完成和插入 操作; 我用了3中方法实现: 一、第一种通过虚拟机建立一个模拟的环境(windows7x64位,sqlserver2012)。 二、第二种是用两根网线进行直连电脑即可 三、第三种通过路由器下的局域网进行连接 1、使用要建立远程访问的两台机器必须在一个网段。 主机和虚拟机(需要访问的机器)两者必须要在一个网段内 我设置的网关是192.168.1.1 主机IP地址为192.168.1.2 虚拟机IP地址为192.168.1.3 其中192.168.1.0不能设置,因为这个是广播地址 子网掩码设置为255.255.255.0(子网掩码用来分配地址空间的) 我的地址空间分配空间为2~254号段内的机器都可以互相访问。 虚拟机:IP地址 在这里插入图片描述 在这里插入图片描述

W1064位主机IP地址: 在这里插入图片描述

(环境建立完毕后通过命令ping 进行ping通) 在这里插入图片描述

2、一般windows7环境下,不用改端口有默认情况下是1433端口,但是我主机(windows10,sqlserver12)端口不是1433需要用到sqlserver配置管理器中进行配置

在这里插入图片描述

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

Windows10环境下一般默认端口是空的的,可以在IPall中设置为1433。

3、用用户名和密码进行登录操作其中sa登录一般是最高权限的用户,一般在需要访问的目标机器中设置登录名(这个登录名一般不是sa): 在这里插入图片描述

虚拟机(192.168.1.3)上数据库Company323没有建表

5.收回表的插入权限。 在这里插入图片描述

当我执行完删除授权后,则不能再进行插入了: 在这里插入图片描述