MSSQL新建的数据库用户dbo没有sa登录名

本文描述了在SQL Server中新建数据库用户发现没有sa登录名的问题,详细记录了解决过程。通过调整数据库连接字符串和SQL Server设置,解决了内网其他计算机无法访问的问题。最终发现可能是SQL Server不同版本之间的差异导致的。

本地访问sql是没有问题的,用内网的其它机子访问我机子上的sql就出错。

连接字符是这样的:

<add key="ConnectionString" value="server=192.168.0.54;uid=sa;pwd=;Database=sq_Boojob_data;Max Pool Size = 8192;"/>

环境是xp sp3+ms sql2000+dotnet1.1

看了下数据库的用户,截图如下:

 

实例属性:

 

Sql server 属性:

 

 

在网上综合了下资料,修改

 

这样修改后,新建个库,查看了下用户

 

修改后,内网的其它机子也可以访问了。

 

后来又尝试在一台2003的服务器上用windows身份验证建了个库,同样没有sa登录名,奇怪的是内网的机子访问也是没问题的。

想来想去也没明白原因,大概是由于sql版本上问题吧,我机子装的开发版,服务器装的server

<think>好的,我现在需要回答用户关于SQL Server实例和MySQL用户之间对应关系和相似点的问题。首先,我得理清楚这两个概念在各自数据库系统中的角色和功能。 SQL Server实例,我记得每个实例都是一个独立的服务进程,拥有自己的系统数据库用户数据库。实例之间是相互隔离的,资源分配也是独立的。比如,一个服务器上可以运行多个实例,每个实例有独立的内存和CPU使用。用户连接到不同的实例需要指定实例名,或者端口号。 而MySQL中的用户,主要是用于权限管理。每个用户有对应的主机名和权限,可以访问不同的数据库用户的作用是控制谁可以访问哪些数据,执行哪些操作。比如,创建用户时指定权限,如SELECT、INSERT等。 那两者的对应关系,用户可能想知道在MySQL中是否有类似SQL Server实例的概念,或者反过来。可能对应的是MySQL的“用户”和SQL Server的“登录名”或“用户”之间的关系,但实例层面可能更接近MySQL的整个服务器实例,因为每个MySQL服务器实例可以包含多个数据库,而用户则分布在各个数据库中。 相似点可能在于权限管理和资源隔离。比如,SQL Server实例提供资源隔离,而MySQL用户通过权限控制实现数据访问的隔离。此外,两者都需要身份验证才能访问。 需要确认的是,SQL Server的实例是否在MySQL中有对应的概念。可能MySQL的整个服务器实例更类似于SQL Server的一个实例,而MySQL用户则类似于SQL Server中的登录名数据库用户的组合。例如,SQL Server登录名用于连接到实例,然后在各个数据库中映射为数据库用户,而MySQL用户直接关联到全局和数据库级别的权限。 可能需要进一步对比两者的架构,比如实例级别的资源管理、用户权限结构等。另外,要注意术语的不同,比如SQL Server的“实例”和MySQL的“服务器实例”可能更相似,而用户管理部分则是各自有不同的实现方式。 总结一下,可能需要分点说明对应关系和相似点,确保术语准确,避免混淆。同时可能需要引用官方文档或权威资料来支持观点,比如提到SQL Server实例的独立性,以及MySQL用户的多层权限控制。</think>### SQL Server 实例与 MySQL 用户的对应关系及相似点 #### 1. **核心概念对比** - **SQL Server 实例** SQL Server 实例是独立的数据库服务进程,包含独立的系统数据库(如 `master`、`model`)和用户数据库。每个实例拥有独立的资源分配(内存、CPU)和配置[^1]。例如,同一台物理服务器可运行多个实例,通过不同端口或实例名区分。 - **MySQL 用户** MySQL 用户是权限管理的核心单位,通过 `用户名@主机名` 格式定义,控制对数据库的访问权限(如 `SELECT`、`INSERT`)。用户权限可细化到表或列级别[^2]。 #### 2. **对应关系** - **SQL Server 实例 ≈ MySQL 服务器实例** 两者的“实例”均代表一个独立的数据库服务进程。例如: - SQL Server 的默认实例名称为 `MSSQLSERVER`。 - MySQL 的默认实例通过 `mysqld` 进程运行。 - **SQL Server 登录名 + 数据库用户 ≈ MySQL 用户** - SQL Server 中,**登录名**用于连接到实例(如 `sa`),而**数据库用户**(如 `dbo`)映射到具体数据库的权限。 - MySQL 中,用户直接关联全局或数据库级权限,无需二次映射。 #### 3. **相似点** 1. **身份验证机制** - 均支持用户名/密码认证。 - SQL Server 支持 Windows 身份验证;MySQL 支持插件式认证(如 `caching_sha2_password`)。 2. **权限分层控制** - SQL Server 通过登录名(实例级)→ 数据库用户(库级)→ 对象权限(表/视图级)。 - MySQL 通过全局权限(如 `GRANT ALL ON *.*`)→ 数据库权限(如 `GRANT SELECT ON db1.*`)。 3. **资源隔离性** - SQL Server 实例间资源隔离(如独立内存分配)。 - MySQL 通过用户权限限制资源占用(如 `MAX_QUERIES_PER_HOUR`)。 #### 4. **差异点** | **特性** | **SQL Server 实例** | **MySQL 用户** | |------------------|-----------------------------------|-----------------------------------| | **隔离级别** | 进程级隔离(独立服务) | 权限级隔离(单进程多线程) | | **配置范围** | 实例级配置(如内存上限) | 全局或用户级配置(如连接数限制) | | **多实例支持** | 单服务器可运行多个实例 | 通常单服务器仅运行一个 MySQL 实例 | #### 5. **操作示例** - **创建 SQL Server 登录名并映射用户** ```sql CREATE LOGIN my_login WITH PASSWORD = 'P@ssw0rd'; USE my_db; CREATE USER my_user FOR LOGIN my_login; GRANT SELECT ON dbo.my_table TO my_user; ``` - **创建 MySQL 用户并授权** ```sql CREATE USER 'my_user'@'localhost' IDENTIFIED BY 'P@ssw0rd'; GRANT SELECT ON my_db.my_table TO 'my_user'@'localhost'; ``` ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值