Microsoft RMS connection validation blueprint
Status: core lab-proven; production driver pending. The reconciliation path passes on simulated POS data. RMS still needs a real SQL Server driver, vendor mapping, and a matching real-store read-back.
Do not run these steps today. They are future-pilot acceptance criteria, not an available installer or self-serve connection.
Microsoft stopped selling RMS, but many stores still keep sales in a back-office SQL Server database. This blueprint maps the intended least-privilege path: a read-only SQL Server login, an outbound-only connector, RMS-specific table mapping, and a real-store read-back before StoreRounds calls it supported.
Written for design review, not execution. Placeholders such as <RMS_DB> show what a founder-assisted pilot would have to map. No setup screen supplies those values today.
Running example throughout: a fictional five-store chain, Cedar Ridge Hardware, running Microsoft RMS Store Operations in each shop and RMS Headquarters at the main store. Every number shown is made up for the example. Your screen shows your real stores.
What is the proposed RMS pilot boundary?
No StoreRounds RMS driver is available today. A future pilot agent would use a build-specific schema map and named read-only SQL Server user, minimize approved daily totals locally, and send them outward over an encrypted connection. The controls below are acceptance criteria, not deployed behavior.
What it is
- A read-only reader. A validated pilot driver would have to run named SELECT queries and nothing else.
- Outbound only. It opens one connection out to StoreRounds. It never listens for anything coming in.
- Scoped to named tables. A pilot would have to limit access to reviewed objects in a build-specific map.
- Yours to switch off. One SQL command, or one uninstall, ends its access completely and immediately.
- Self-reporting. If it loses the database connection it reconnects and logs it, and you see its health in your dashboard.
What it is not
- It is not a writer. It cannot add, change, or delete a single transaction, item, or price in RMS. The database user is denied write access on purpose.
- It is not an open door. It opens no ports and needs no inbound firewall rule. Nothing on the internet can reach into your store through it.
- It is not a remote-control tool. No one at StoreRounds gets a login to your computer, your RMS, or your SQL Server.
- It must not touch payment card data. The approved map would include aggregate transaction and tender counts, not card numbers.
- It must be not surveillance. The intended output is store-level exceptions, not employee scoring.
If a technician, your former RMS reseller, or a managed-services provider needs to sign off first, hand them the one-page security brief: the StoreRounds connector, for IT. It answers a cautious admin's questions in plain terms and prints on one sheet. The deeper security model is in trust and security.
Where does RMS keep its data, and why can't a cloud tool read it?
Microsoft Dynamics RMS, sold as Store Operations for the store and Headquarters for the chain, is built on the Microsoft SQL Server database platform.1 In a typical shop that database lives on a back-office computer in the store, often on the free SQL Server Express edition, with the registers writing transactions to it over your local network. Your sales are in a database on a machine you control, not in a vendor's cloud with an open connection port.
RMS is also discontinued. Microsoft ended mainstream support in 2016 and extended support in 2021, and it is no longer sold.2 That is exactly why the cloud cannot help you here. The platforms that pull reporting from their own hosted systems were never going to build a modern connection into a Microsoft product Microsoft itself retired. The data still works, it still runs your registers, and it is still yours. It just sits somewhere a cloud dashboard cannot reach. A read-only database user is the honest way to read it.
Why the big platforms skip it
Square, Toast, and Lightspeed each ground their reporting in first-party data on the cloud they host. They cannot read an RMS SQL Server box sitting in your back office without you first replatforming onto them, because their model is built around their own rails, not a neutral reach into a database they do not own. A discontinued POS is the clearest case of the register your platform pretends does not exist.
What RMS still does well
RMS still rings sales, prints receipts, holds history, and Headquarters can roll stores up. The unproven StoreRounds goal is to add a cross-store overnight exception brief above it. That value must be demonstrated through a real RMS pilot before it can be claimed as a working integration.
How could a future pilot work in a store with several registers?
A possible pilot topology would place an approved RMS-specific edge agent near the back-office SQL Server database and allow outbound-only transport to StoreRounds. The diagram is a design target, not a deployed connection.
Two facts worth repeating, because they are the whole security story:
- A future pilot agent would have to read over the local network and send only reviewed, minimized fields.
- The connection to StoreRounds is started from inside your store, going out. Your firewall does not need a new inbound rule. There is no port for an outsider to knock on.
A future pilot could evaluate a same-host edge agent or another approved always-on computer on the local network. A chain might require one agent per store or a separately validated Headquarters route, depending on where authoritative data lives. No layout is supported today, and each would require its own network, schema, impact, and read-back review.
What would a future RMS pilot have to validate?
Five stages. Each ends with a verify step, so you never move on wondering whether the last part worked. Stage 1 is the database login and is the only stage that touches SQL. If your IT person handles the database, send them stage 1 and do the rest yourself.
Create the read-only SQL Server login
In an approved future pilot, an authorized administrator could create a dedicated login such as storerounds_ro, limited to the exact RMS objects in a reviewed build-specific map and denied write access. The sample block is documentation, not a ready-to-run grant. Do not run it or create a login today.
1. Exact vendor mapping. A future pilot would require founder and IT review of the database, schema, named transaction tables, and store identifiers for the exact RMS build. No StoreRounds screen provides these values today.
2. A way to run SQL. That is SQL Server Management Studio or Azure Data Studio, both free from Microsoft. Open one, connect to the SQL Server instance that hosts RMS, and sign in as an administrator (the sa account or a sysadmin login). If you would rather not, this is the one stage to hand to your IT person, then do the rest yourself.
Future pilot rule: an approved build-specific schema map would replace every placeholder, including <RMS_DB> and the <..._TABLE> objects. A long one-time credential would be handled through an approved secret path. No setup screen or completed map exists today, so do not run this sample.
Microsoft SQL Server
-- 1. Create a server login with a strong password. USE [master]; CREATE LOGIN [storerounds_ro] WITH PASSWORD = '<STRONG_PASSWORD>', CHECK_POLICY = ON; GO -- 2. Map it to a user inside your RMS database. USE [<RMS_DB>]; CREATE USER [storerounds_ro] FOR LOGIN [storerounds_ro]; GO -- 3. FUTURE PILOT ONLY: grant SELECT on the tables a validated adapter would read. -- These are the RMS transaction and store objects from your -- setup screen. Do NOT add this user to db_datareader (reads all). GRANT SELECT ON OBJECT::dbo.<SALES_DOC_TABLE> TO [storerounds_ro]; GRANT SELECT ON OBJECT::dbo.<SALES_LINE_TABLE> TO [storerounds_ro]; GRANT SELECT ON OBJECT::dbo.<TENDER_TABLE> TO [storerounds_ro]; GRANT SELECT ON OBJECT::dbo.<STORE_TABLE> TO [storerounds_ro]; GO -- 4. Belt and suspenders: explicitly deny anything that changes data. DENY INSERT, UPDATE, DELETE, EXECUTE, ALTER, CONTROL TO [storerounds_ro]; GO
The sample uses the common dbo schema only as a placeholder. A future approved schema map must supply the exact object and schema names for the customer's RMS build. An owner must never guess them.
Confirm the user can read, and only read. Run EXECUTE AS USER = 'storerounds_ro'; SELECT TOP 1 * FROM dbo.<SALES_DOC_TABLE>; REVERT; and check that it returns a row. Then confirm it cannot write by running an UPDATE under the same EXECUTE AS and seeing it refused. If any write succeeds, re-run the DENY line before continuing.
Download and install the connector
- A founder would first approve the exact RMS build, driver, schema map, and owner for a named pilot.
- The owner's IT reviewer would receive the table map, network request, build hash, and rollback plan before installation.
- A pilot build must be code-signed before a customer receives it. No RMS download is available from this page.
- Future acceptance criterion: an approved signed build would pair through a short-lived, one-time code delivered only during a founder-assisted pilot.
Acceptance criterion: a future pilot would show the approved host, build identity, pairing time, and a truthful paired or failed state. This screen is not live today.
Point the connector at your RMS database
- In the connector window, the database type is already set to SQL Server.
- Enter the server address. This is often localhost if the connector is on the RMS computer, otherwise the server's name or LAN address like 10.0.0.20. RMS very commonly uses a named SQL instance, so enter it as SERVERNAME\INSTANCE (a common one is SERVERNAME\SQLEXPRESS).
- Enter the port if your instance uses a fixed one (SQL Server default is 1433). For a named instance you can usually leave the port blank and let the connector resolve it.
- Enter the database name <RMS_DB>.
- Enter the user storerounds_ro and the password you set in stage 1.
- Click Test connection.
Acceptance criterion: a future pilot must prove it can read only the named RMS objects and cannot write. The customer-facing connected state described here is not live.
Match RMS store IDs to your stores
RMS identifies each store by a store ID. A future build-specific driver would return the reviewed IDs and require a human mapping before reporting. Cedar Ridge Hardware is fictional example data.
- Acceptance criterion: a future build-specific adapter would return only reviewed store IDs, and the owner would map each one to a real location.
- If an ID is a warehouse, a training or demo store, or a closed location, mark it Do not report. StoreRounds will skip it.
- Set each store's day cutoff (when the sales day ends, for example 9:00 PM) and time zone, so the daily totals line up with your own RMS end-of-day close.
The store list shows the right number of active stores with the right names. Cedar Ridge Hardware shows exactly five. If a store is missing, its store ID may be marked Do not report, or the read-only user may not have been granted the store table. Check stage 1.
Run the read-back test
This would be the release gate. A future pilot would compare a StoreRounds read-back with the owner's RMS report. Only a matching real-store result could mark the driver verified and schedule a first Morning Flash.
How would an RMS pilot prove it read the right store and numbers?
A founder-assisted pilot would select one approved store and closed sales day, retrieve totals through the build-specific driver, and compare them with the owner's trusted RMS report. The driver must remain unsupported until those values match and the owner confirms the definitions.
| What StoreRounds read back | StoreRounds | RMS end-of-day | Match |
|---|---|---|---|
| Gross sales | $7,204.55 | $7,204.55 | Yes |
| Transactions | 118 | 118 | Yes |
| Cash tendered | $1,640.00 | $1,640.00 | Yes |
| Card tendered | $5,564.55 | $5,564.55 | Yes |
Numbers are fictional, for the Cedar Ridge Hardware example. On your screen these are your store's real totals for the day you check.
To pass the read-back test
- A future pilot operator would initiate one approved closed-date read-back for a named store. That control does not exist for customers today.
- In RMS, open that store's Z-report or Sales Summary / batch report for the same date.
- Compare gross sales, transaction count, and the cash and card split. They should match to the cent.
- If a future pilot matches, the owner would confirm the reconciliation. Only then could the connection be marked verified and a first Morning Flash be scheduled.
A future pilot must stop on any mismatch. Likely investigation points include the day cutoff, tax-inclusive versus tax-exclusive totals, and returns, voids, work orders, layaways, or quotes. No Morning Flash should run until the owner confirms a clean match.
What if something goes wrong?
The common failures and what fixes them. Open the one that matches what you see.
The connection test fails with "cannot reach server"
Future pilot diagnostic: if an approved agent could not reach SQL Server, an authorized technician would verify the approved host, named instance, and local-network route before reviewing credentials.
Check that the server address is right. If the connector is on the same machine as SQL Server, try localhost. If it is on another machine, use the server's LAN address and make sure both machines are on the same network. RMS usually runs under a named instance, so enter it as SERVERNAME\INSTANCE (for example SERVERNAME\SQLEXPRESS). If TCP/IP is disabled on the instance, enable it in SQL Server Configuration Manager and restart the SQL Server service, then confirm the SQL Server Browser service is running so a named instance can be resolved.
"Login failed for user storerounds_ro"
The server was reached, but the login was refused. Re-check the password matches what you set in stage 1. Confirm the SQL Server is set to mixed-mode (SQL and Windows) authentication, since storerounds_ro is a SQL login. RMS installs commonly use mixed mode already, but if the instance is Windows-only the SQL login will be refused until you switch it in the server properties and restart the service.
"Read-only confirmed" but a table is missing
The connector signed in but cannot see one of the RMS objects it needs, usually the store table or a sales-line table. Re-run the matching GRANT SELECT line from stage 1 for the object named in the error. Make sure the schema prefix is right: most RMS objects are under dbo, and the setup screen lists the exact object names for your build, so copy them from there rather than guessing.
The store list is missing a location, or shows extras
Extras are usually a training or demo store, a warehouse store ID, or a closed store still in the database. Mark them Do not report in stage 4. A missing store means either its store ID is marked Do not report, or the read-only user was not granted the store table. Confirm the grant, then choose Rescan stores.
The read-back numbers are off by a consistent amount
A steady gap can reflect a definition difference: day cutoff, tax treatment, or how returns, voids, and non-sale transaction types are counted. In a future pilot, the owner and StoreRounds would document the approved definition and repeat the read-back until it matched the owner's RMS report to the cent. Until then, the adapter would remain unverified.
The connector went offline overnight
A supported pilot agent would need bounded retries, a receipted gap, and an unresolved-offline alert. Those behaviors are not production-proven. Host uptime and SQL Server health would be reviewed with the owner's IT contact.
A future supported connection would need a truthful health record for reads, retries, gaps, and unresolved errors. This customer-facing health view is an acceptance criterion, not a live RMS feature.
How must a future RMS pilot prove revocation?
Access is yours to end at any time, with no notice and no call. You have two independent switches, and either one alone stops the flow of data. Use both to remove every trace.
Switch 1: turn off the connector
The future pilot would need a verified pause, unpair, and uninstall path that removes its working credential. No such customer control is live today.
Switch 2: drop the database user
Dropping the dedicated read-only SQL Server login is the source-side stop. A future pilot must prove that an attempted read then fails closed.
USE [<RMS_DB>]; DROP USER [storerounds_ro]; GO USE [master]; DROP LOGIN [storerounds_ro]; GO
Run SELECT name FROM sys.database_principals WHERE name = 'storerounds_ro'; in your RMS database, and SELECT name FROM sys.server_principals WHERE name = 'storerounds_ro'; in master. Both return no rows. The account is gone. If you also removed the connector, nothing of StoreRounds remains on your network.
In a future pilot, revoke must stop new reads. Until self-serve data controls ship, export and deletion requests would go through [email protected].
Frequently asked questions
Status for every answer below: no production RMS adapter is live. These answers describe the intended pilot boundary and must be proven on a real store.
Can discontinued Microsoft RMS be considered for a pilot?
Possibly, but no production RMS adapter exists today. A future pilot would have to identify the exact version and authoritative database, validate a least-privilege build-specific map, measure query impact, prove revocation, and match a real-store read-back before support.
Can StoreRounds change or delete anything in RMS?
No production RMS adapter exists today. A future pilot would have to prove that its dedicated user is limited to named SELECT grants and cannot insert, update, delete, execute, or alter data.
Would a future pilot require an inbound firewall port?
The proposed design requires no inbound firewall rule. A future RMS pilot would have to use outbound HTTPS on port 443 after an approved build-specific agent reads only reviewed objects over the local network. No RMS agent is available today.
Could RMS Headquarters be considered for a pilot?
Possibly, but no layout is supported today. A future pilot would have to determine whether Headquarters or each Store Operations database is authoritative, review the schema, and prove the read-back for every included store.
What would a future RMS pilot read?
The intended minimum is reviewed transaction, line, tender, and store objects, returning aggregate totals, counts, and store IDs without full card numbers. The exact map does not exist for customers today and must be approved before a pilot.
My RMS runs on SQL Server Express. Is that a problem?
SQL Server Express may provide a future validation route, but StoreRounds has no production RMS driver. The named instance, version, schema, query impact, and read-back would all require founder-assisted review.
How do I turn it off later?
No customer RMS connection exists today. A future pilot must prove two independent stop paths: remove the edge agent or drop its dedicated SQL Server login. Either must prevent another read.
Apply to validate one RMS store
You can inspect this blueprint without an account. An RMS production driver is not live, payments are closed, and applying does not promise a connection date. Suitable applicants will be contacted only if a founder-assisted driver validation opens.
A portal account does not unlock an RMS adapter. Do not install software or create credentials until StoreRounds confirms an approved pilot.