SQL server里加一个访问账号,对某个数据库实体只有查询权限,没有变更权限
时间: 2023-05-31 10:07:24 浏览: 86
可以通过如下的SQL语句给某个账号只赋予查询权限:
GRANT SELECT ON table_name TO user_name;
其中,table_name 是要授权的表名,user_name 是要赋予权限的账号名。这样,该账号就只能查询该表,而不能修改或删除其中的数据。
相关问题
sqlserver 如果在没有管理员权限的情况下查询指定数据库的大小
你可以使用以下的 SQL 语句查询指定数据库的大小,即使你没有管理员权限:
```
USE YourDatabaseName;
EXEC sp_spaceused;
```
执行这个语句后,你会得到一个包含数据文件大小、日志文件大小以及它们所占用空间的详细报告。其中,数据库大小的值为 `database_size`,单位为 KB。如果你想查询除了日志文件之外的数据文件大小,可以使用以下 SQL 语句:
```
USE YourDatabaseName;
EXEC sp_spaceused @updateusage = N'TRUE';
```
这个命令会更新数据库的使用情况,然后返回除了日志文件之外的数据文件大小,单位为 KB。
写一个 react+c# sqlserver数据库用户权限和菜单权限常用的表结构
好的,下面是一个简单的 React 和 C# 结合使用 SQL Server 数据库的用户权限和菜单权限常用的表结构:
```
CREATE TABLE Users (
Id INT IDENTITY(1,1) PRIMARY KEY,
FirstName NVARCHAR(50) NOT NULL,
LastName NVARCHAR(50) NOT NULL,
Email NVARCHAR(100) NOT NULL UNIQUE,
Password NVARCHAR(100) NOT NULL
);
CREATE TABLE Roles (
Id INT IDENTITY(1,1) PRIMARY KEY,
Name NVARCHAR(50) NOT NULL,
Description NVARCHAR(500)
);
CREATE TABLE UserRoles (
UserId INT NOT NULL FOREIGN KEY REFERENCES Users(Id),
RoleId INT NOT NULL FOREIGN KEY REFERENCES Roles(Id),
PRIMARY KEY (UserId, RoleId)
);
CREATE TABLE Permissions (
Id INT IDENTITY(1,1) PRIMARY KEY,
Name NVARCHAR(50) NOT NULL,
Description NVARCHAR(500)
);
CREATE TABLE RolePermissions (
RoleId INT NOT NULL FOREIGN KEY REFERENCES Roles(Id),
PermissionId INT NOT NULL FOREIGN KEY REFERENCES Permissions(Id),
PRIMARY KEY (RoleId, PermissionId)
);
CREATE TABLE Menus (
Id INT IDENTITY(1,1) PRIMARY KEY,
Name NVARCHAR(50) NOT NULL,
Url NVARCHAR(500) NOT NULL,
ParentId INT NULL,
OrderIndex INT NOT NULL
);
CREATE TABLE RoleMenus (
RoleId INT NOT NULL FOREIGN KEY REFERENCES Roles(Id),
MenuId INT NOT NULL FOREIGN KEY REFERENCES Menus(Id),
PRIMARY KEY (RoleId, MenuId)
);
```
以上是一个简单的表结构,包括用户、角色、权限和菜单。在用户和角色之间建立了一个中间表 UserRoles,用于表示一个用户可以拥有多个角色。在角色和权限之间建立了一个中间表 RolePermissions,用于表示一个角色可以拥有多个权限。在角色和菜单之间建立了一个中间表 RoleMenus,用于表示一个角色可以拥有多个菜单权限。在 React 前端和 C# 后端中,可以使用相应的库来连接和操作 SQL Server 数据库,并在应用程序中使用这些表来管理用户和菜单权限。